home *** CD-ROM | disk | FTP | other *** search
/ The Business Master (3rd Edition) / The Business Master (3rd Edition).iso / files / utilenus / marxmenu / menus.exe / MARXMENU.DOC < prev    next >
Encoding:
Text File  |  1991-04-22  |  297.3 KB  |  8,181 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.     ===================================================================
  24.  
  25.  
  26.  
  27.                       <*> Computer Tyme MarxMenu <*>
  28.  
  29.                              Reference Manual
  30.  
  31.                    Copyright 1989 - 1991 by Marc Perkel
  32.  
  33.         All Rights Reserved * Version 2.27 * Release Date: 04-22-91
  34.  
  35.     Computer Tyme * 411 North Sherman Suite 300 * Springfield Mo. 65802
  36.  
  37.                  (417) 866-1222 voice * (417) 866-1665 bbs
  38.  
  39.                            Fax: (417) 866-0135
  40.                           CompuServe 76505,1120
  41.  
  42.  
  43.  
  44.     ===================================================================
  45.  
  46.  
  47.  
  48.    Computer Tyme MarxMenu * Table of Contents              Page 1
  49.    _______________________________________________________________
  50.  
  51.  
  52.  
  53.        Copyright .........................................  1
  54.        License ...........................................  1
  55.        Warranty ..........................................  1
  56.        Acknowledgments ...................................  2
  57.        Trademarks ........................................  2
  58.        The MarxMenu Name .................................  2
  59.        Technical Support .................................  3
  60.        Overview of the MarxMenu System ...................  3
  61.        -- What MarxMenu Does .............................  5
  62.        -- For the POWER User .............................  6
  63.        Installation ......................................  7
  64.        Installing the Network Survival Kit ...............  7
  65.        The MARX.BAT File .................................  8
  66.        -- DROPTO.BAT .....................................  10
  67.        -- Support for early DOS versions .................  11
  68.        -- About Environment Variables ....................  12
  69.        -- Dealing with Multiple DOS Shells ...............  13
  70.        -- MarxMenu and TSR Control .......................  14
  71.        Network Users .....................................  15
  72.        -- Novell Users ...................................  15
  73.        ---- The Novell Menu Translator ...................  16
  74.        ---- Logging out under Menu Control ...............  16
  75.        ---- Logging in with MarxMenu .....................  17
  76.        ------ The CONFIG.SYS File ........................  18
  77.        ------ The AUTOEXEC.BAT File ......................  18
  78.        ------ The SHELL.CFG File .........................  20
  79.        ------ Using a Menu File to Log In ................  20
  80.        ---- Novell Semaphores ............................  21
  81.        Running a MarxMenu ................................  22
  82.        Customizing MarxMenu Sample Files .................  22
  83.        Menu Analysis .....................................  23
  84.        Onkey Statements ..................................  24
  85.        Popup Menus .......................................  24
  86.        The Console .......................................  26
  87.        Repositioning the Top Window ......................  26
  88.        Mouse Support .....................................  27
  89.        Starting off the Easy Way .........................  27
  90.        About Variables ...................................  27
  91.        -- Dates ..........................................  29
  92.        -- Real Numbers ...................................  29
  93.        -- Local Variables ................................  30
  94.        -- Passing Parameters to Procedures ...............  30
  95.        About Constants ...................................  32
  96.        About Arrays ......................................  32
  97.        About Qualifiers ..................................  33
  98.        Comments in Menu Files ............................  34
  99.        The MarxMenu Compiler .............................  35
  100.        Compiler Compatibility ............................  35
  101.        A word about DOS versions .........................  36
  102.        A word about BUGS .................................  36
  103.        Tips From the Master ..............................  37
  104.  
  105.  
  106.  
  107.    Computer Tyme MarxMenu * Table of Contents              Page 2
  108.    _______________________________________________________________
  109.  
  110.  
  111.        -- Computers do Simple Tasks ......................  37
  112.        -- Complex Tasks are made of Simple Tasks .........  38
  113.        -- Learning Good Programming Habits ...............  38
  114.        -- Use Long Names .................................  39
  115.        -- Use Comments Liberally .........................  40
  116.        -- Indent Your code ...............................  41
  117.        -- For Duplicate Tasks, Use Procedures ............  42
  118.        -- Don't Program Yourself into a Corner ...........  42
  119.        A word to Writers and Reviewers ...................  43
  120.        Using MarxHelp ....................................  44
  121.        Printing the Example Files ........................  44
  122.        Security Issues ...................................  44
  123.        MarxMenu Commands .................................  45
  124.        -- | ..............................................  46
  125.        -- ( ..............................................  46
  126.        -- ) ..............................................  46
  127.        -- * ..............................................  46
  128.        -- + ..............................................  47
  129.        -- - ..............................................  47
  130.        -- / ..............................................  47
  131.        -- < ..............................................  47
  132.        -- <= .............................................  47
  133.        -- <> .............................................  47
  134.        -- = ..............................................  47
  135.        -- > ..............................................  47
  136.        -- >= .............................................  47
  137.        -- %MenuFileName ..................................  48
  138.        -- Abs ............................................  48
  139.        -- Alias ..........................................  48
  140.        -- And ............................................  48
  141.        -- ApplicationMemory ..............................  49
  142.        -- Apr ............................................  49
  143.        -- ArcTan .........................................  49
  144.        -- Aug ............................................  49
  145.        -- BadDate ........................................  49
  146.        -- Bat ............................................  49
  147.        -- BatFileName ....................................  50
  148.        -- BigShadow ......................................  50
  149.        -- Black ..........................................  50
  150.        -- Blanked ........................................  50
  151.        -- BlankMessage ...................................  50
  152.        -- BlankTime ......................................  50
  153.        -- Blink ..........................................  51
  154.        -- BlockBox .......................................  51
  155.        -- Blue ...........................................  51
  156.        -- BoxBorderColor .................................  51
  157.        -- BoxHeader ......................................  52
  158.        -- BoxHeaderColor .................................  52
  159.        -- BoxHeaderLeft ..................................  52
  160.        -- BoxHeaderRight .................................  52
  161.        -- BoxFooter ......................................  53
  162.        -- BoxFooterLeft ..................................  53
  163.  
  164.  
  165.  
  166.    Computer Tyme MarxMenu * Table of Contents              Page 3
  167.    _______________________________________________________________
  168.  
  169.  
  170.        -- BoxFooterRight .................................  53
  171.        -- BoxInsideColor .................................  53
  172.        -- Brown ..........................................  53
  173.        -- BW40 ...........................................  54
  174.        -- BW80 ...........................................  54
  175.        -- CapsColor ......................................  54
  176.        -- CapsLock .......................................  54
  177.        -- Chain ..........................................  54
  178.        -- Char ...........................................  55
  179.        -- ChDir ..........................................  55
  180.        -- CleanFileName ..................................  55
  181.        -- ClearLine ......................................  55
  182.        -- ClearScreen ....................................  55
  183.        -- ClearScreenFirst ...............................  56
  184.        -- ClearScreenOnExit ..............................  56
  185.        -- ClockColor .....................................  56
  186.        -- ClockMode ......................................  56
  187.        -- ClockPos .......................................  57
  188.        -- ClosePrinter ...................................  57
  189.        -- ClusterSize ....................................  57
  190.        -- CmdLine ........................................  57
  191.        -- CO40 ...........................................  58
  192.        -- CO80 ...........................................  58
  193.        -- ColorScreen ....................................  58
  194.        -- Comment ........................................  58
  195.        -- Console ........................................  58
  196.        -- ConsoleBorderColor .............................  59
  197.        -- ConsoleHeaderColor .............................  59
  198.        -- ConsoleInsideColor .............................  59
  199.        -- ConsolePos .....................................  59
  200.        -- Const ..........................................  59
  201.        -- Cos ............................................  59
  202.        -- CurrentEnvironment .............................  60
  203.        -- CurrentWindow ..................................  60
  204.        -- Cursor .........................................  60
  205.        -- CustomBox ......................................  60
  206.        -- Cyan ...........................................  60
  207.        -- DateString .....................................  60
  208.        -- Day ............................................  60
  209.        -- DayOf ..........................................  61
  210.        -- DayOfWeek ......................................  61
  211.        -- DayOfWeekOf ....................................  61
  212.        -- Dec ............................................  61
  213.        -- Delete .........................................  62
  214.        -- DelFile ........................................  62
  215.        -- Dispose ........................................  63
  216.        -- DosVersion .....................................  63
  217.        -- DosVersionString ...............................  63
  218.        -- DosWindow ......................................  63
  219.        -- DoubleLineBox ..................................  64
  220.        -- DrawBox ........................................  64
  221.        -- Drives .........................................  64
  222.  
  223.  
  224.  
  225.    Computer Tyme MarxMenu * Table of Contents              Page 4
  226.    _______________________________________________________________
  227.  
  228.  
  229.        -- DvAppNumber ....................................  64
  230.        -- DvFrame ........................................  64
  231.        -- DvFreeze .......................................  65
  232.        -- DvHide .........................................  65
  233.        -- DvKillTask .....................................  65
  234.        -- DvLastHandle ...................................  65
  235.        -- DvLoaded .......................................  65
  236.        -- DvMoveWindow ...................................  65
  237.        -- DvMyHandle .....................................  65
  238.        -- DvPifExecute ...................................  66
  239.        -- DvResizeWindow .................................  66
  240.        -- DvSetBottom ....................................  66
  241.        -- DvSetTop .......................................  66
  242.        -- DvUnFreeze .....................................  67
  243.        -- DvUnHide .......................................  67
  244.        -- Else ...........................................  67
  245.        -- EndComment .....................................  67
  246.        -- Endif ..........................................  67
  247.        -- EndLoop ........................................  67
  248.        -- EndOfFile ......................................  68
  249.        -- EndProc ........................................  68
  250.        -- EndWhile .......................................  68
  251.        -- EnvFree ........................................  68
  252.        -- EnvSize ........................................  68
  253.        -- EraseTopWindow .................................  68
  254.        -- EraseWindow ....................................  69
  255.        -- Execute ........................................  69
  256.        -- ExistDir .......................................  70
  257.        -- ExistFile ......................................  70
  258.        -- ExistOnPath ....................................  70
  259.        -- ExitCode .......................................  70
  260.        -- ExitMenu .......................................  70
  261.        -- Exp ............................................  71
  262.        -- Explode ........................................  71
  263.        -- ExplodeDelay ...................................  71
  264.        -- Extension ......................................  71
  265.        -- False ..........................................  71
  266.        -- Feb ............................................  71
  267.        -- FileAppend .....................................  71
  268.        -- FileAssign .....................................  72
  269.        -- FileAttr .......................................  72
  270.        -- FileClose ......................................  72
  271.        -- FileCreate .....................................  72
  272.        -- FileDate .......................................  72
  273.        -- FileFlush ......................................  72
  274.        -- FileLog ........................................  72
  275.        -- FileOpen .......................................  73
  276.        -- FilePart .......................................  73
  277.        -- FilePos ........................................  73
  278.        -- FileReadln .....................................  73
  279.        -- FileRename .....................................  73
  280.        -- FileResult .....................................  74
  281.  
  282.  
  283.  
  284.    Computer Tyme MarxMenu * Table of Contents              Page 5
  285.    _______________________________________________________________
  286.  
  287.  
  288.        -- FileSeek .......................................  74
  289.        -- FileSize .......................................  74
  290.        -- FileWrite ......................................  74
  291.        -- FileWriteln ....................................  74
  292.        -- FixPath ........................................  74
  293.        -- Floppies .......................................  74
  294.        -- ForceExplosion .................................  74
  295.        -- ForceExtension .................................  75
  296.        -- Fraction .......................................  75
  297.        -- FreeDiskSpace ..................................  75
  298.        -- FreeEms ........................................  75
  299.        -- FreeMemory .....................................  75
  300.        -- Fri ............................................  75
  301.        -- GotoXY .........................................  75
  302.        -- Green ..........................................  76
  303.        -- Grey ...........................................  76
  304.        -- Hour ...........................................  76
  305.        -- HourOf .........................................  76
  306.        -- Hundredth ......................................  76
  307.        -- IdelProgram ....................................  76
  308.        -- If .............................................  77
  309.        -- InactiveBox ....................................  78
  310.        -- InactiveBoxColor ...............................  78
  311.        -- Include ........................................  78
  312.        -- InputString ....................................  79
  313.        -- Insert .........................................  79
  314.        -- InsertMode .....................................  79
  315.        -- Int ............................................  79
  316.        -- Integer ........................................  79
  317.        -- InverseColor ...................................  80
  318.        -- Jan ............................................  80
  319.        -- Jul ............................................  80
  320.        -- Jun ............................................  80
  321.        -- Jump ...........................................  80
  322.        -- KbdReady .......................................  80
  323.        -- KeySave ........................................  80
  324.        -- KeyFromMouse ...................................  80
  325.        -- KillMusic ......................................  81
  326.        -- LastKey ........................................  81
  327.        -- LBlue ..........................................  81
  328.        -- LCyan ..........................................  81
  329.        -- Left ...........................................  81
  330.        -- Length .........................................  81
  331.        -- LGreen .........................................  81
  332.        -- LGrey ..........................................  82
  333.        -- LMag ...........................................  82
  334.        -- LMagenta .......................................  82
  335.        -- Ln .............................................  82
  336.        -- Loc ............................................  82
  337.        -- LockWord .......................................  82
  338.        -- Logoff .........................................  82
  339.        -- LogoffTime .....................................  83
  340.  
  341.  
  342.  
  343.    Computer Tyme MarxMenu * Table of Contents              Page 6
  344.    _______________________________________________________________
  345.  
  346.  
  347.        -- Loop ...........................................  83
  348.        -- LoopIndex ......................................  84
  349.        -- LoopLimit ......................................  84
  350.        -- LRed ...........................................  84
  351.        -- MachineName ....................................  84
  352.        -- Mag ............................................  84
  353.        -- Magenta ........................................  84
  354.        -- Mar ............................................  84
  355.        -- MarxVersion ....................................  85
  356.        -- MasterEnvironment ..............................  85
  357.        -- Max ............................................  85
  358.        -- May ............................................  85
  359.        -- Mem ............................................  85
  360.        -- MemL ...........................................  85
  361.        -- MemSize ........................................  85
  362.        -- MemW ...........................................  86
  363.        -- MenuKeyBuffer ..................................  86
  364.        -- Mid ............................................  86
  365.        -- Min ............................................  86
  366.        -- MinorDosVersion ................................  86
  367.        -- Minute .........................................  86
  368.        -- MinuteOf .......................................  87
  369.        -- Mod ............................................  87
  370.        -- ModifyPath .....................................  87
  371.        -- Mon ............................................  87
  372.        -- Mono ...........................................  87
  373.        -- Month ..........................................  87
  374.        -- MonthOf ........................................  87
  375.        -- Mouse ..........................................  88
  376.        -- MouseHorizontal ................................  88
  377.        -- MouseVertical ..................................  88
  378.        -- MoveWindow .....................................  88
  379.        -- MxCmd ..........................................  89
  380.        -- NamePart .......................................  89
  381.        -- NetworkVersion .................................  89
  382.        -- NextWord .......................................  89
  383.        -- No .............................................  89
  384.        -- NoBoxBorder ....................................  90
  385.        -- NoExit .........................................  90
  386.        -- Not ............................................  90
  387.        -- NotesLeft ......................................  90
  388.        -- NotesPlayed ....................................  90
  389.        -- Nov ............................................  90
  390.        -- NovAccountExpDate ..............................  90
  391.        -- NovAttach ......................................  91
  392.        -- NovChangePassword ..............................  91
  393.        -- NovCloseSemaphore ..............................  91
  394.        -- NovConnection ..................................  91
  395.        -- NovConsoleOperator .............................  91
  396.        -- NovDefaultServer ...............................  91
  397.        -- NovDetach ......................................  91
  398.        -- NovGroupMembers ................................  91
  399.  
  400.  
  401.  
  402.    Computer Tyme MarxMenu * Table of Contents              Page 7
  403.    _______________________________________________________________
  404.  
  405.  
  406.        -- NovGroups ......................................  92
  407.        -- NovInGroup .....................................  92
  408.        -- NovLogin .......................................  92
  409.        -- NovLoginName ...................................  92
  410.        -- NovLogout ......................................  92
  411.        -- NovMapDrive ....................................  93
  412.        -- NovMyLoginName .................................  93
  413.        -- NovMyPassword ..................................  93
  414.        -- NovOpenSemaphore ...............................  93
  415.        -- NovPasswordExpDate .............................  93
  416.        -- NovPreferredServer .............................  93
  417.        -- NovPrimaryServer ...............................  93
  418.        -- NovPrintQueues .................................  94
  419.        -- NovReadGroups ..................................  94
  420.        -- NovReadSecurityEquals ..........................  94
  421.        -- NovResult ......................................  94
  422.        -- NovSemaphoreTimeOut ............................  94
  423.        -- NovSemaphoreUsers ..............................  94
  424.        -- NovSemaphoreValue ..............................  94
  425.        -- NovServers .....................................  94
  426.        -- NovScanProperties ..............................  95
  427.        -- NovSetPreferredServer ..........................  95
  428.        -- NovSetPrimaryServer ............................  95
  429.        -- NovSignalSemaphore .............................  95
  430.        -- NovStationAddress ..............................  96
  431.        -- NovUserInGroup .................................  96
  432.        -- NovUsers .......................................  96
  433.        -- NovUsersLoggedIn ...............................  96
  434.        -- NovWaitOnSemaphore .............................  96
  435.        -- NumberOfElements ...............................  96
  436.        -- Now ............................................  97
  437.        -- NumLock ........................................  97
  438.        -- Oct ............................................  97
  439.        -- Off ............................................  97
  440.        -- On .............................................  97
  441.        -- OnKey ..........................................  98
  442.        -- OnScreenOnly ...................................  98
  443.        -- OpenPrinter ....................................  99
  444.        -- OptionSwitch ...................................  99
  445.        -- Or .............................................  99
  446.        -- Ord ............................................  99
  447.        -- OverKey ........................................  99
  448.        -- Overlay ........................................  100
  449.        -- ParallelPorts ..................................  100
  450.        -- ParamStr .......................................  100
  451.        -- ParentEnvironment ..............................  100
  452.        -- Password .......................................  101
  453.        -- Path ...........................................  101
  454.        -- PathPart .......................................  101
  455.        -- PauseAfterExecute ..............................  101
  456.        -- Pi .............................................  101
  457.        -- PickFile .......................................  102
  458.  
  459.  
  460.  
  461.    Computer Tyme MarxMenu * Table of Contents              Page 8
  462.    _______________________________________________________________
  463.  
  464.  
  465.        -- PickMany .......................................  102
  466.        -- PickOne ........................................  102
  467.        -- PickPosition ...................................  103
  468.        -- Port ...........................................  103
  469.        -- Pos ............................................  103
  470.        -- Power ..........................................  103
  471.        -- Pred ...........................................  103
  472.        -- Print ..........................................  103
  473.        -- PrinterName ....................................  103
  474.        -- Println ........................................  104
  475.        -- PrintScreen ....................................  104
  476.        -- Procedure ......................................  104
  477.        -- PullMenu .......................................  104
  478.        -- Qualifier ......................................  104
  479.        -- Random .........................................  105
  480.        -- ReadEnv ........................................  105
  481.        -- ReadEnvironment ................................  105
  482.        -- ReadKey ........................................  106
  483.        -- Readln .........................................  106
  484.        -- ReadTextFile ...................................  106
  485.        -- Real ...........................................  107
  486.        -- Reboot .........................................  107
  487.        -- Red ............................................  107
  488.        -- ReleaseDate ....................................  107
  489.        -- Repeat .........................................  107
  490.        -- ResizeWindow ...................................  108
  491.        -- Return .........................................  108
  492.        -- ReturnCode .....................................  108
  493.        -- Right ..........................................  108
  494.        -- RollWindow .....................................  109
  495.        -- Run ............................................  109
  496.        -- Sat ............................................  110
  497.        -- SavePosition ...................................  110
  498.        -- ScreenHeight ...................................  110
  499.        -- ScreenWidth ....................................  110
  500.        -- ScrollLock .....................................  110
  501.        -- ScrollMove .....................................  111
  502.        -- Second .........................................  111
  503.        -- SecondOf .......................................  111
  504.        -- SecondInDay ....................................  111
  505.        -- SecondInHour ...................................  111
  506.        -- Security .......................................  111
  507.        -- SelectPath .....................................  111
  508.        -- Sep ............................................  112
  509.        -- SerialPorts ....................................  112
  510.        -- SetArraySize ...................................  112
  511.        -- SetEnv .........................................  112
  512.        -- SetTopWindow ...................................  113
  513.        -- SetWindowUnder .................................  113
  514.        -- Shadow .........................................  113
  515.        -- ShadowColor ....................................  113
  516.        -- ShadowPosition .................................  113
  517.  
  518.  
  519.  
  520.    Computer Tyme MarxMenu * Table of Contents              Page 9
  521.    _______________________________________________________________
  522.  
  523.  
  524.        -- Shared .........................................  114
  525.        -- ShellEnvironment ...............................  114
  526.        -- Shl ............................................  114
  527.        -- Shr ............................................  114
  528.        -- Sin ............................................  114
  529.        -- SingleLineBox ..................................  114
  530.        -- SmallShadow ....................................  115
  531.        -- SortArray ......................................  115
  532.        -- Sound ..........................................  115
  533.        -- Sqr ............................................  115
  534.        -- StandardIO .....................................  115
  535.        -- Str ............................................  115
  536.        -- StuffAKey ......................................  116
  537.        -- StuffKBD .......................................  116
  538.        -- StuffKeyboardNow ...............................  116
  539.        -- Succ ...........................................  116
  540.        -- Suggest ........................................  116
  541.        -- Sun ............................................  116
  542.        -- TextBackground .................................  116
  543.        -- TextColor ......................................  117
  544.        -- TextMode .......................................  117
  545.        -- TextPos ........................................  117
  546.        -- TextSeek .......................................  117
  547.        -- Then ...........................................  117
  548.        -- Thu ............................................  117
  549.        -- TimeOf .........................................  118
  550.        -- Timer ..........................................  118
  551.        -- TimeString .....................................  118
  552.        -- Today ..........................................  118
  553.        -- Tone ...........................................  118
  554.        -- TotalDiskSpace .................................  119
  555.        -- TotalEms .......................................  119
  556.        -- Trim ...........................................  119
  557.        -- True ...........................................  119
  558.        -- Tue ............................................  119
  559.        -- UniqueFileName .................................  119
  560.        -- Until ..........................................  119
  561.        -- UpperCase ......................................  119
  562.        -- UpperCaseOnly ..................................  120
  563.        -- UseArrows ......................................  120
  564.        -- UseCommand .....................................  120
  565.        -- UsedDiskSpace ..................................  121
  566.        -- UseNovPassword .................................  121
  567.        -- Value ..........................................  121
  568.        -- Var ............................................  121
  569.        -- VideoMode ......................................  121
  570.        -- VideoPage ......................................  121
  571.        -- ViewArray ......................................  122
  572.        -- ViewTextFile ...................................  122
  573.        -- Volume .........................................  122
  574.        -- Wait ...........................................  122
  575.        -- WaitOrKbdReady .................................  122
  576.  
  577.  
  578.  
  579.    Computer Tyme MarxMenu * Table of Contents              Page 10
  580.    _______________________________________________________________
  581.  
  582.  
  583.        -- Wed ............................................  122
  584.        -- WhereX .........................................  122
  585.        -- WhereXAbs ......................................  123
  586.        -- WhereY .........................................  123
  587.        -- WhereYAbs ......................................  123
  588.        -- While ..........................................  123
  589.        -- White ..........................................  123
  590.        -- WindowHeight ...................................  123
  591.        -- WindowWidth ....................................  123
  592.        -- Write ..........................................  123
  593.        -- WriteCenter ....................................  124
  594.        -- Writeln ........................................  124
  595.        -- WriteTextFile ..................................  124
  596.        -- WriteVertical ..................................  124
  597.        -- Xor ............................................  124
  598.        -- Year ...........................................  124
  599.        -- YearOf .........................................  125
  600.        -- Yellow .........................................  125
  601.        -- Yes ............................................  125
  602.        String and Character Constants ....................  125
  603.        Conditional Statements ............................  127
  604.        Environment Variables used by MarxMenu ............  128
  605.        Command Categories ................................  129
  606.        -- Misc Commands ..................................  129
  607.        -- Math Commands ..................................  129
  608.        -- Float Commands .................................  130
  609.        -- String Commands ................................  131
  610.        -- Boolean Commands ...............................  132
  611.        -- Memory Commands ................................  132
  612.        -- Time Commands ..................................  133
  613.        -- Execution Commands .............................  134
  614.        -- Display Commands ...............................  134
  615.        -- Color Commands .................................  136
  616.        -- Video Commands .................................  136
  617.        -- System Commands ................................  137
  618.        -- File Commands ..................................  137
  619.        -- Printer Commands ...............................  138
  620.        -- Environment Commands ...........................  138
  621.        -- Array Commands .................................  138
  622.        -- DesqView Commands ..............................  139
  623.        -- Conditional Commands ...........................  139
  624.        -- Keyboard Commands ..............................  139
  625.        -- MouseControl Commands ..........................  140
  626.        -- Music Commands .................................  140
  627.        -- Novell Commands ................................  140
  628.        -- Variable Commands ..............................  141
  629.  
  630.  
  631.  
  632.    Computer Tyme MarxMenu Users Manual                     Page 1
  633.    _______________________________________________________________
  634.  
  635.  
  636.    COPYRIGHT
  637.    COPYRIGHT
  638.    COPYRIGHT
  639.  
  640.    This manual is copyrighted material and all rights are reserved.
  641.    MarxMenu is a programming language which describes to the computer what
  642.    it is supposed to do. Even though some of the individual words in
  643.    MarxMenu are used in other programming languages, I claim a copyright on
  644.    the collection of words which make up the MarxMenu language. I therefore
  645.    consider it an infringement of my CopyRight to create a software product
  646.    which uses the MarxMenu language, or translates MarxMenu source code,
  647.    without purchasing a license to do so.
  648.  
  649.    The combinations of definitions of commands in this manual constitute a
  650.    copyrighted work. Any publication which describes a computer language
  651.    for which the MarxMenu command set is a subset is a violation of the
  652.    copyright of this software and this written manual.
  653.  
  654.    In other words, don't try to clone MarxMenu.
  655.  
  656.    LICENSE AGREEMENT:
  657.    LICENSE AGREEMENT:
  658.    LICENSE AGREEMENT:
  659.  
  660.    You are licensed to use this program on a single CPU or workstation. If
  661.    you are running on a network, you are required to license a separate
  662.    copy for each workstation or a file server license for each file server.
  663.    If you are running on a multiuser operating system such as Concurrent
  664.    DOS, you are required to license a copy for each workstation. Everyone
  665.    who uses this menu, must license a copy unless several people share the
  666.    same workstation.
  667.  
  668.    This software is licensed and not sold. The license begins when Computer
  669.    Tyme recieves payment in full. You may not transfer, sell, sublease or
  670.    rent this software without the written consent of Computer Tyme. You are
  671.    not allowed to distribute MarxMenu in runtime form with software you
  672.    developed unless it is in combination with a paid for copy of MarxMenu,
  673.    or you have made special arrangements in writing with Computer Tyme to
  674.    do so.
  675.  
  676.    Use of this product constitutes your acceptance of the terms and
  677.    conditions of this license and of my copyright and your agreement to
  678.    abide by these terms and conditions.
  679.  
  680.    WARRANTY:
  681.    WARRANTY:
  682.    WARRANTY:
  683.  
  684.    The warranty is limited to the diskettes to be machine readable for a
  685.    period of 30 days after purchase. Although we try hard to write perfect
  686.    software that has no bugs, we do not guarantee that. We also do not
  687.    guarantee that this product is fit for every purpose and we are not
  688.    liable for any damages that might occur from use of this product. This
  689.    agreement is governed by the laws of the State of Missouri.
  690.  
  691.  
  692.  
  693.    Computer Tyme MarxMenu Users Manual                     Page 2
  694.    _______________________________________________________________
  695.  
  696.  
  697.    ACKNOWLEDGMENTS:
  698.    ACKNOWLEDGMENTS:
  699.    ACKNOWLEDGMENTS:
  700.  
  701.    I would like to thank the following people for making this product
  702.    possible:
  703.  
  704.    Joe Smith and Kevin Moore for helping write this manual. My wife Vicki
  705.    for being good to me and helping with revisions and editing.
  706.  
  707.    The Computer Tyme staff for being the best employees in the world.
  708.  
  709.    Borland International for writing Turbo Pascal and keeping it bug free
  710.    and well supported.
  711.  
  712.    TurboPower Software for their very powerful extensions to Turbo Pascal
  713.    and their well written, well supported product.
  714.  
  715.    Semware for TEdit and QEdit, their full screen editors.
  716.  
  717.    All users who actually paid for this product so that we may continue to
  718.    eat.
  719.  
  720.    Those of you who have pointed out bugs and made suggestions to improve
  721.    our product.
  722.  
  723.    TRADEMARKS
  724.    TRADEMARKS
  725.    TRADEMARKS
  726.  
  727.    MarxMenu, DOS ToolBox, Directory Master, and The Network Survival Kit
  728.    are trademarks of Computer Tyme.
  729.  
  730.     QEdit and TEdit are trademarks of SemWare.
  731.     Lotus is a registered trademark of Lotus Development.
  732.     Wordstar is a registered trademark of MicroPro International.
  733.     Smart Software is a trademark of Informix.
  734.     MS-DOS is a trademark of Microsoft.
  735.     Concurrent DOS and DR-DOS are trademarks of Digital Research.
  736.     Turbo Pascal is a trademark of Borland International.
  737.     OPRO and TPRO are trademarks of TurboPower Software
  738.     Netware and Novell are trademarks of Novell
  739.     DesqView and QEMM are trademarks of Quarterdeck
  740.     IBM is a trademark of International Business Machines
  741.  
  742.     Created using Turbo Pascal
  743.     Copyright 1983-90 by Borland International
  744.  
  745.    THE MARXMENU NAME
  746.    THE MARXMENU NAME
  747.    THE MARXMENU NAME
  748.  
  749.    When I first wrote this program my friends referred to it as Marc's
  750.    Menu. That's where the name MarxMenu came from. It has nothing to do
  751.    with either Carl or Groucho Marx.
  752.  
  753.  
  754.  
  755.    Computer Tyme MarxMenu Users Manual                     Page 3
  756.    _______________________________________________________________
  757.  
  758.  
  759.    TECHNICAL SUPPORT
  760.    TECHNICAL SUPPORT
  761.    TECHNICAL SUPPORT
  762.  
  763.    Technical support for MarxMenu is provided several ways. The first is by
  764.    calling our voice line 1-417-866-1222. We would ask that you not call
  765.    the 800 number as that is for orders and ordering information only.
  766.  
  767.    We have several support staff and will try to answer your questions as
  768.    quickly and efficiently as possible. We at Computer Tyme look at
  769.    technical support as an opportunity to improve our product.
  770.  
  771.    We also have a 24 hour BBS system. This allows users with modems to
  772.    leave messages about support issues. There are several user uploaded
  773.    menus here and it serves as a forum for MarxMenu users to share ideas
  774.    and techniques.
  775.  
  776.    Our BBS number is 1-417-866-1665. Supports 2400 baud but is 1200 baud
  777.    compatible. Use 8 bits, no parity, 1 stop bit (8N1). You will also need
  778.    to set your terminal emulation mode to ANSI or VT100.
  779.  
  780.    On our BBS are additional sample menu files that other MarxMenu users
  781.    like yourself have uploaded. We encourage you to share your work with
  782.    others so that yet more MarxMenu users can benefit.
  783.  
  784.    We are also available on Compuserve ID 76505,1120.
  785.  
  786.    We also offer a Fast Update Service which includes regular upgrades sent
  787.    to you automatically as we come out with them. This doesn't mean every
  788.    version of MarxMenu, but every so often after making several
  789.    improvements and the product is at a stable point. The Fast Update
  790.    Service includes special access to our support BBS.
  791.  
  792.    This service is for the very fierce MarxMenu user who has to have the
  793.    "Latest and Greatest" all the time.
  794.  
  795.    OVERVIEW OF THE MARXMENU SYSTEM
  796.    OVERVIEW OF THE MARXMENU SYSTEM
  797.    OVERVIEW OF THE MARXMENU SYSTEM
  798.  
  799.    MarxMenu is not just another fill-in-the-blank menu system. It is a menu
  800.    programming language and job control language. It gives you total
  801.    freedom to do whatever you want, but total freedom has a price. You will
  802.    need to know and understand how to use a text editor. This isn't
  803.    difficult if you are familiar with using a word processor. And you will
  804.    need to have a basic understanding of DOS and how batch files work.
  805.  
  806.    With a text editor you can create a menu file which is a text file with
  807.    an MNU extension. Or, you can copy and then modify the text file
  808.    SAMPLE2.MNU which displays the menus you see when MarxMenu is executed.
  809.    This text file contains a set of instructions for MarxMenu to follow.
  810.    MarxMenu will then read your menu file and run the instructions.
  811.  
  812.     A menu file might look as follows:
  813.  
  814.  
  815.  
  816.    Computer Tyme MarxMenu Users Manual                     Page 4
  817.    _______________________________________________________________
  818.  
  819.  
  820.     DrawBox 31 5 18 4
  821.     UseArrows
  822.     Writeln   '  W - WordStar'
  823.     Write     '  L - Lotus'
  824.  
  825.     OnKey 'W'
  826.        CD\WORDSTAR
  827.        WS
  828.  
  829.     OnKey 'L'
  830.        CD\LOTUS
  831.        LOTUS
  832.  
  833.    The above example is a fully working MarxMenu program. Just because
  834.    MarxMenu has 500 commands doesn't mean you have to use them all. The
  835.    reason there are so many commands is that people keep calling me up and
  836.    asking if I can add such and such. Most of the time I do. That's why the
  837.    manual gets behind sometimes.
  838.  
  839.    The instructions must be from the vocabulary of words that MarxMenu
  840.    understands. These words make up the command list included in this
  841.    manual. They must be used precisely as the instructions in this manual
  842.    tell you to use them. This process is called programming.
  843.  
  844.    I know that for many of you the word programming is a scary word. Put
  845.    your fears at ease, MarxMenu is one of the easiest programming languages
  846.    there is. It is a little harder than writing batch files and a lot
  847.    easier than Basic. It requires a working knowledge of DOS and an
  848.    understanding of writing batch files as explained in your DOS manual.
  849.  
  850.    The point that I want to make is, do not let the fear of learning and
  851.    the fear of programming prevent you from learning to write your own
  852.    menus. If you have never touched a computer before and are sitting down
  853.    with your first PC, read the manuals first. Become familiar with the
  854.    MS-DOS operating system. Learn how to write batch files, make
  855.    subdirectories, copy files, format floppies, etc. If you don't
  856.    understand something, ask a friend. All of us had to learn sometime, and
  857.    there is no such thing as a stupid question.
  858.  
  859.    After you have mastered some of the basic concepts of the operating
  860.    system, then learn either TEDIT or MarxEdit. These are text editors
  861.    included with your MarxMenu program. Use it to write your own batch
  862.    files. Then attempt to write your own menus by modifying the sample
  863.    menus (files with a MNU extension) which come with MarxMenu. Print these
  864.    menus and study them, referring to this manual for help on command
  865.    definitions. You do not have to completely understand them to start
  866.    making changes. Programming is a trial and error process.
  867.  
  868.  
  869.  
  870.    Computer Tyme MarxMenu Users Manual                     Page 5
  871.    _______________________________________________________________
  872.  
  873.  
  874.    A computer, like a musical instrument, is only as good as the player.
  875.    The more you learn about it the more you'll find it can do. In fact, a
  876.    computer can help raise your effective IQ as you learn the disciplines
  877.    of logic and reason. As a hammer is a tool of the hand, enhancing your
  878.    physical strength, a computer is a tool of the mind, enhancing your
  879.    mental strength. You will learn that as you develop a relationship with
  880.    your computer, that you will be able to process information in ways you
  881.    never dreamed.
  882.  
  883.    MarxMenu is an excellent learning tool. By the time you become
  884.    proficient with the menu language, you will have learned the fundamental
  885.    concepts behind the MS-DOS operating system. You will find yourself
  886.    going back and forth between this manual and the DOS manual that came
  887.    with your computer. When you master the language, you will have enough
  888.    computing skills to be a real resource in your office environment. In
  889.    this day and age, knowing how to "make the damn things work" is a key in
  890.    moving up the corporate ladder.
  891.  
  892.    If you have sufficient excess income to afford a personal computer, or
  893.    are in a job that provides you with a workstation, you are smart enough
  894.    to learn this program. All it requires is that you take the time. You
  895.    can do it. It is worth your time, and you will make up the time spent in
  896.    the results you'll get. Good luck and enjoy.
  897.  
  898.    WHAT MARXMENU DOES
  899.    WHAT MARXMENU DOES
  900.    WHAT MARXMENU DOES
  901.  
  902.    So with hundreds of menus on the market, what makes this one so great.
  903.    Well, let me tell you about it. MarxMenu is a menu language rather than
  904.    a fill in the blank kind of menu. MarxMenu gives you total control of
  905.    your computer system.
  906.  
  907.    It is also a job control language allowing you to program processes too
  908.    difficult to do with batch files. MarxMenu can be used to do anything
  909.    from overnight batch job processing to generating control scripts for
  910.    mainframes.
  911.  
  912.    Because of it's simple syntax, MarxMenu makes an excellent teaching
  913.    language putting more programming power in the hands of the student
  914.    programmer than any other programming language.
  915.  
  916.    As a menu, MarxMenu can be as simple or as complex as you want. If you
  917.    want simple, nothing is easier. If you want POWER, nothing is more
  918.    powerful. If you want to get really weird, MarxMenu can do really wierd.
  919.  
  920.    So if you want the menu to remind you to go vote, MarxMenu knows when
  921.    the first Teusday after the first Monday in November on even years is.
  922.    If you are into Astrology, and you want certain menu items to appear
  923.    only if Mars is in the right place in the sky, MarxMenu can calculate
  924.    the orbit of Mars for you.
  925.  
  926.  
  927.  
  928.    Computer Tyme MarxMenu Users Manual                     Page 6
  929.    _______________________________________________________________
  930.  
  931.  
  932.    MarxMenu can be used to program games, write running software demos and
  933.    online tutorial programs. It can be used to write testing programs. It
  934.    can be used to write custom software installation programs. It can be
  935.    used to assist other applications to make other software more network
  936.    friendly.
  937.  
  938.    MarxMenu has a compiler for high speed execution. Even very large menus
  939.    come up in under 4 seconds on a 4.77mhz IBM XT on an ArcNet lan. The
  940.    compiler also provides security in that you can keep your source files
  941.    separate so no one can alter the menu files.
  942.  
  943.    FOR THE POWER USER:
  944.    FOR THE POWER USER:
  945.    FOR THE POWER USER:
  946.  
  947.    I originally wrote MarxMenu on a dare. I said that in one afternoon I
  948.    could write a better menu system than one of the most popular menu
  949.    systems. I met the challenge and then found that there is a lot of
  950.    demand for power in a menu system. Friends started asking for this and
  951.    that feature and this program has gone far beyond what I ever intended.
  952.  
  953.    The demand for more features has outpaced my ability to keep up with the
  954.    documentation standards that I expect from other software packages that
  955.    I buy. Please bear with me. If you find any errors in the manual, or
  956.    bugs in the program, please let me know and I'll try to correct any
  957.    problems.
  958.  
  959.    I also appreciate your suggestions for improvements. Many of the
  960.    features included are a result of requests you have made. Many of you
  961.    are using this program in ways I never dreamed.
  962.  
  963.    The main design philosophy behind this product is POWER and Flexibility.
  964.    I am also committed to keeping the source code as readable as possible.
  965.    I am loyal to the concept of using NO RAM. None of MarxMenu stays
  966.    resident. Because of this I can claim that if you are having some kind
  967.    of problem, it's not the fault of MarxMenu being resident, because
  968.    MarxMenu is not resident. Also, using NO RAM allows loading of TSR's
  969.    (memory resident programs) from the menu.
  970.  
  971.    For computer consultants, MarxMenu is an excellent way to make money.
  972.    You can provide your clients with professional looking menu systems
  973.    customized (by you) to fit their needs. You can provide complex menu
  974.    structures not possible with any other menu system. And, because
  975.    MarxMenu uses NO RAM, you don't have to worry about conflicts between
  976.    MarxMenu and any other software product.
  977.  
  978.    Although MarxMenu is copyrighted, the program is not copy protected.
  979.    There is nothing to prevent you from making hot copies and giving them
  980.    away to all your clients. I would like to point out that when you give
  981.    away something you should be selling you lose respect from your clients
  982.    and attract those who expect you to work for free. You will make more
  983.    money if you play by the rules. My best and most profitable clients use
  984.    no hot software whatsoever. Think about it.
  985.  
  986.  
  987.  
  988.    Computer Tyme MarxMenu Users Manual                     Page 7
  989.    _______________________________________________________________
  990.  
  991.  
  992.    INSTALLATION
  993.    INSTALLATION
  994.    INSTALLATION
  995.  
  996.    You may wish to copy the MarxMenu system into it's own subdirectory
  997.    called MARX to keep the files better organized. However, this is not
  998.    necessary. Copy all the disks that come with MarxMenu into a directory
  999.    on your hard disk or network.
  1000.  
  1001.    If you do put the menu system in a subdirectory, it must be path
  1002.    accessible. That is, you must have a path statement in your autoexec.bat
  1003.    file that includes the directory where the menu system resides. A
  1004.    typical path statement might look like this:
  1005.  
  1006.     PATH=C:\;C:\DOS;C:\MARX;
  1007.  
  1008.    Copy all your Computer Tyme disks to the hard disk or network and type
  1009.    MARXINST. When it gets done, you can run some of the sample menus by
  1010.    typing MARX <menu>.
  1011.  
  1012.    -------------------- V E R Y * I M P O R T A N T ----------------------
  1013.  
  1014.    MarxMenu requires up to 100 bytes of free environment space. It won't
  1015.    run properly without it. The way you get more environment space is to
  1016.    add a SHELL command to your CONFIG.SYS file.
  1017.  
  1018.     SHELL=COMMAND.COM /P /E:nnn
  1019.  
  1020.    Where NNN is the number of bytes for the environment to reserve. Note
  1021.    that if you are running DOS that is earlier than 3.3 then NNN is the
  1022.    number of 16 byte blocks to allocate for the environment.
  1023.  
  1024.    For DOS 3.3 or later:
  1025.  
  1026.     SHELL=COMMAND.COM /P /E:400
  1027.  
  1028.    For DOS earlier than 3.3:
  1029.  
  1030.     SHELL=COMMAND.COM /P /E:25
  1031.  
  1032.    If MarxMenu gives you an environment space error, this is where you go
  1033.    to fix it.
  1034.  
  1035.    INSTALLING THE NETWORK SURVIVAL KIT
  1036.    INSTALLING THE NETWORK SURVIVAL KIT
  1037.    INSTALLING THE NETWORK SURVIVAL KIT
  1038.  
  1039.    The Network Survival Kit is installed by copying the distribution disk
  1040.    into a directory on your server and typing INSTALL. It will unpack into
  1041.    about 2.5 megs of programs and documentation. Be sure to print out the
  1042.    DOC files on any programs you are interested in and print out the
  1043.    MARXREAD.ME and MARXREAD.ME2 files.
  1044.  
  1045.    Make sure you do not run the install from the floppy disk.
  1046.  
  1047.  
  1048.  
  1049.    Computer Tyme MarxMenu Users Manual                     Page 8
  1050.    _______________________________________________________________
  1051.  
  1052.  
  1053.    THE MARX.BAT FILE
  1054.    THE MARX.BAT FILE
  1055.    THE MARX.BAT FILE
  1056.  
  1057.    In order for MarxMenu to work, a MARX.BAT file must be created. This is
  1058.    done by typing MARXINST. The first thing that MARXINST does is unpack
  1059.    the compressed menu files and documentation files. Then it will bring up
  1060.    the installation menu.
  1061.  
  1062.    The MARX.BAT file looks like this:
  1063.  
  1064.     @ECHO OFF
  1065.     C:\MARX\MARXMENU.EXE %1
  1066.     %MXCMD%
  1067.     %0 %1
  1068.  
  1069.    The first line of MARX.BAT turns the echo off. This may be changed to
  1070.    ECHO ON for debugging purposes. PAUSE commands can be inserted to debug
  1071.    a menu. This allows you to see what's going on.
  1072.  
  1073.    The second line of MARX.BAT runs MARXMENU.EXE. The second parameter %1
  1074.    is the name of the menu file to run. A third parameter can be added to
  1075.    tell MarxMenu to use a specific directory for creating temporary batch
  1076.    files. Otherwise MarxMenu will create temporary batch files in the same
  1077.    directory as MARXMENU.EXE.
  1078.  
  1079.    When the user selects a program to run, MarxMenu writes a temporary
  1080.    batch file which contains within it the commands to run the program.
  1081.    Then MarxMenu writes a command to the environment variable MXCMD to
  1082.    execute the temporary batch file and exits.
  1083.  
  1084.    What it writes depends on the version of DOS you are running. If you are
  1085.    running DOS 3.3 or later, MXCMD is set to CALL <batch>. If you are
  1086.    running an earlier version of DOS then MXCMD is set to COMMAND /C
  1087.    <batch>.
  1088.  
  1089.    Whatever command is written to MXCMD is executed in line 3. This usually
  1090.    calls the temporary batch file that MarxMenu created. This executes your
  1091.    program and returns to MARX.BAT.
  1092.  
  1093.    Line four jumps back to the beginning of the batch file and starts all
  1094.    over. %0 is MARX.BAT and %1 is the name of the menu you are running.
  1095.  
  1096.             MARX.BAT
  1097.             --------   +--MarxMenu Creates--+
  1098.      +----> @ECHO OFF  |                    |
  1099.      |      MARXMENU.EXE %1                 |
  1100.      |      %MXCMD% >--+                    +-> $MX00000.BAT
  1101.      | +--> %0 %1 --+  |                        ------------
  1102.      | |            |  +----------------------> CD\WORDSTAR
  1103.      +-|------<-----+                           WS --+
  1104.        |                                             |
  1105.        +-------------------------------------------<-+
  1106.  
  1107.  
  1108.  
  1109.    Computer Tyme MarxMenu Users Manual                     Page 9
  1110.    _______________________________________________________________
  1111.  
  1112.  
  1113.     Note: MarxMenu sets MXCMD = CALL $MX00000.BAT
  1114.  
  1115.    You can also tell MarxMenu where to put it's temporary batch files by
  1116.    setting an environment variable TEMP to point to a temporary file
  1117.    directory.
  1118.  
  1119.     Example: SET TEMP=F:\TMPFILES
  1120.  
  1121.    This is compatible with the way DOS 5 and Windows uses temp files.
  1122.  
  1123.    When you exit the menu system. MarxMenu sets MXCMD to MXSTOP. This jumps
  1124.    to a batch file called MXSTOP which gets you out of MARX.BAT. MXSTOP.BAT
  1125.    can be modified to control what happens when MarxMenu is exited.
  1126.  
  1127.    The default MXSTOP.BAT file is as follows.
  1128.  
  1129.     SET MXCMD=
  1130.     SET KSV=
  1131.     REM You can control menu exiting with this file!
  1132.  
  1133.    Note that by adding your own commands to MXSTOP that you can control
  1134.    what happens when you exit. You could loop right back to the menu if you
  1135.    want. Or, you could force a controlled network logoff.
  1136.  
  1137.    I strongly recommend upgrading to DOS 3.3 or later whenever it is
  1138.    possible to do so.
  1139.  
  1140.    The name of the temporary batch file is as follows:
  1141.  
  1142.                      $MX00000.BAT
  1143.                          ||||
  1144.            Shells--------+|++--------Network Station (Hex)
  1145.                      Task Number
  1146.  
  1147.    The 5 zeros are used for single user versions of MarxMenu. On a network
  1148.    they change as follows:
  1149.  
  1150.    The last 2 zeros is the station number on the network. This is either
  1151.    read directly from the shell, if you are using Novell, or from the
  1152.    environment variable STATION if you are on another network. The third
  1153.    zero is the task number if you are running DesqView, or from an
  1154.    environment variable TASK if you are running some other multitasker.
  1155.  
  1156.    The second zero is replaced by one less than the number of COMMAND.COM
  1157.    shells you are running. This way if you run COMMAND.COM under MarxMenu
  1158.    and then run MarxMenu again under that, it doesn't get lost when you
  1159.    exit.
  1160.  
  1161.    The first zero is for future expansion. In case something comes along
  1162.    that I haven't thought of.
  1163.  
  1164.  
  1165.  
  1166.    Computer Tyme MarxMenu Users Manual                     Page 10
  1167.    _______________________________________________________________
  1168.  
  1169.  
  1170.    If you want to do custom tricks, MarxMenu has an internal variable
  1171.    called MxCmd. Setting this to your own command overrides the way
  1172.    MarxMenu would normally use it.
  1173.  
  1174.    But now you ask, does MarxMenu leave a trail of batch files that will
  1175.    clutter up my drive or network? Not at all. MarxMenu keeps using the
  1176.    same names over and over again. If a user crashed his system, it might
  1177.    leave a batch file but it would be overwritten the next time he used the
  1178.    menu. Not only that, all batch files can be kept in the same directory
  1179.    so cleaning up is as simple as typing DEL $MX*.BAT!
  1180.  
  1181.    By writing to the MxCmd variable you can run an EXE or COM file directly
  1182.    without having to create another batch file.
  1183.  
  1184.     Example:
  1185.        OnKey 'M'
  1186.           |MxCmd = 'RAMMAP'
  1187.  
  1188.    This runs RamMap directly from the MARX.BAT file.
  1189.  
  1190.    Another trick is to run another batch file without the CALL statement.
  1191.    This creates a one way jump to another batch file.
  1192.  
  1193.    Another debugging feature. You can change the first line of the MARX.BAT
  1194.    file as follows:
  1195.  
  1196.     @ECHO %MXECHO%
  1197.  
  1198.    This allows you to turn the echo on for debugging purposes by typing:
  1199.  
  1200.     SET MXECHO=ON
  1201.  
  1202.    This way you don't have to change the MARX.BAT file to debug. If you use
  1203.    this, make sure that MXECHO is set to either ON or OFF.
  1204.  
  1205.    DROPTO.BAT
  1206.    DROPTO.BAT
  1207.    DROPTO.BAT
  1208.  
  1209.    If you are going to run a shell like COMMAND.COM under MarxMenu it is
  1210.    sometimes better to use DROPTO.BAT which is created during the install
  1211.    process. DropTo allows you to jump from the temporary batch file that
  1212.    MarxMenu creates to DropTo, which deletes the temporary batch file and
  1213.    executes the rest of the command line.
  1214.  
  1215.     Usage: DROPTO %0 COMMAND.COM
  1216.  
  1217.    If you are using DropTo inside a MarxMenu, the %0 is automatically added
  1218.    for you.
  1219.  
  1220.     Example:
  1221.        OnKey 'C'
  1222.           DropTo COMMAND.COM
  1223.  
  1224.  
  1225.  
  1226.    Computer Tyme MarxMenu Users Manual                     Page 11
  1227.    _______________________________________________________________
  1228.  
  1229.  
  1230.     DROPTO.BAT
  1231.     ----------
  1232.     DEL %1
  1233.     SET KSV=
  1234.     SET MXCMD=
  1235.     %2 %3 %4 %5 %6 %7 %8 %9
  1236.  
  1237.    Here's how it works:
  1238.  
  1239.         $MX00000.BAT <------deletes this file--------+
  1240.         ------------                                 |
  1241.         DROPTO %0 COMMAND.COM ------------> DEL %1 >-+
  1242.                                             SET KSV=
  1243.                                             SET MXCMD=
  1244.                  %2 executes COMMAND.COM--> %2 %3 %4 %5 %6 %7 %8 %9
  1245.  
  1246.    The advantages are that the temporary batch file is eliminated so if the
  1247.    user never returns to the menu, it leaves no temporary file to clutter
  1248.    up the drive. Also, DROPTO.BAT becomes the pending batch file that is
  1249.    running rather than the temporary file.
  1250.  
  1251.    SUPPORT FOR EARLY DOS VERSIONS
  1252.    SUPPORT FOR EARLY DOS VERSIONS
  1253.    SUPPORT FOR EARLY DOS VERSIONS
  1254.  
  1255.    There are two main differences between DOS versions earlier than 3.3 and
  1256.    versions 3.3 and above. One is the CALL command for batch files and the
  1257.    other is the way you specify environment space when using COMMAND.COM.
  1258.  
  1259.    I have enhanced the support for early DOS versions (3.0, 3.1, 3.2).
  1260.    MarxMenu executes COMMAND /C /E:nn (batchfile) >NUL to have one batch
  1261.    file call another. The first two lines of the batch files created are as
  1262.    follows:
  1263.  
  1264.     ECHO OFF
  1265.     CTTY CON
  1266.     ....
  1267.  
  1268.    This eliminates the ECHO OFF from being seen.
  1269.  
  1270.    Also whenever possible, when MarxMenu loads up a copy of COMMAND.COM, it
  1271.    adds the /E:nnn command to set the environment space to the same as that
  1272.    of the Master Environment. In versions earlier then 3.3 it is translated
  1273.    to paragraphs instead of bytes.
  1274.  
  1275.    One thing to note in early versions of DOS. If you run a batch file
  1276.    under COMMAND /C and your batch file has SET commands to set environment
  1277.    variables, the changes you make will disappear as soon as you get back
  1278.    to MARX.BAT. Why? Because you loaded another COMMAND.COM and the SET
  1279.    commands set its environment. When this COMMAND.COM ends, it takes its
  1280.    environment with it. Under DOS 3.3 or later, which uses CALL instead of
  1281.    another shell, the SET commands live. (Yet another reason to upgrade).
  1282.  
  1283.  
  1284.  
  1285.    Computer Tyme MarxMenu Users Manual                     Page 12
  1286.    _______________________________________________________________
  1287.  
  1288.  
  1289.    ABOUT ENVIRONMENT VARIABLES
  1290.    ABOUT ENVIRONMENT VARIABLES
  1291.    ABOUT ENVIRONMENT VARIABLES
  1292.  
  1293.    I've been talking a lot about environment variables. Some of you out
  1294.    there in novice land don't know what an environment variable is. Many
  1295.    others don't know the intricate secrets handed down from the Great DOS
  1296.    Masters who know all the intricate undocumented features of DOS.
  1297.  
  1298.    Your DOS shell, COMMAND.COM owns an area of memory called the Master
  1299.    Environment. It contains strings in the form Name=Value. Included among
  1300.    those strings are your COMSPEC and your PATH. Your COMSPEC tells DOS and
  1301.    other programs where to find COMMAND.COM. Your PATH tells DOS and other
  1302.    programs what directories to search when loading programs. Another
  1303.    common environment variable is your PROMPT. This controls what your DOS
  1304.    prompt will look like.
  1305.  
  1306.    Environment variables are commonly set using the SET command. This is
  1307.    done by typing SET NAME=VALUE.
  1308.  
  1309.     Example:
  1310.        SET COLOR=BLUE
  1311.  
  1312.    So what does this actually do? Actually nothing, unless you have a
  1313.    program that reads the environment variables that is looking for one
  1314.    called COLOR. This way, environment variables can be used to leave
  1315.    messages to other programs and control how they behave.
  1316.  
  1317.    Besides leaving messages, environment variables can be accessed by batch
  1318.    files. If you use %NAME% in a batch file, DOS will substitute the VALUE
  1319.    of the variable for the %NAME% expression. And this feature is important
  1320.    to MarxMenu's operation.
  1321.  
  1322.    MarxMenu uses an environment variable called MXCMD. In the MARX.BAT file
  1323.    the third line is %MXCMD%. So MarxMenu controls MARX.BAT by writing
  1324.    values to MXCMD.
  1325.  
  1326.    In order to do this, there must be enough room in the environment for
  1327.    the command to fit. That is why you need to make sure that you have a
  1328.    SHELL command in your CONFIG.SYS to set space for MarxMenu to use.
  1329.  
  1330.    Now so far I've only talked about the Master Environment. That's the one
  1331.    that the first COMMAND.COM owns. Each program that is loaded, including
  1332.    TSRs, gets a copy of the Master Environment in its own environment. This
  1333.    is called the CURRENT Environment.
  1334.  
  1335.    One interesting feature of the Current Environment is that it is smaller
  1336.    than the Master Environment. DOS only creates enough space to hold a
  1337.    copy of the space used in the Master Environment and a little more to
  1338.    store the name of the program that is running.
  1339.  
  1340.  
  1341.  
  1342.    Computer Tyme MarxMenu Users Manual                     Page 13
  1343.    _______________________________________________________________
  1344.  
  1345.  
  1346.    If one program executes another program, the environment of the parent
  1347.    program is called the Parent Environment. You will probable never need
  1348.    to deal with the Parent Environment but MarxMenu can access it in case
  1349.    you do.
  1350.  
  1351.    Another environment is the SHELL ENVIRONMENT. This is the one that THEY
  1352.    never talk about. The one you'll never read about in any books. The one
  1353.    you'll never learn about in any DOS classes. This is the one your
  1354.    parents never mentioned.
  1355.  
  1356.    The Shell Environment is normally the same as the Master Environment.
  1357.    But, if you are running more that one level of COMMAND.COM, the Shell
  1358.    Environment is the environment of the last COMMAND.COM in memory. This
  1359.    environment is the most important environment to MarxMenu.
  1360.  
  1361.    So why load up two or more COMMAND.COMs? There are several cases where
  1362.    this could occur. One case is when you want to run COMMAND.COM as a
  1363.    program under MarxMenu. This way you can type EXIT to get back to the
  1364.    menu. If you do this and then run MarxMenu again, you have two levels of
  1365.    COMMAND.COM. In this case, the first COMMAND.COM is the Master
  1366.    Environment and the second COMMAND.COM is the Shell Environment.
  1367.  
  1368.    Another place where more than one COMMAND.COM is used is if you are
  1369.    running Microsoft Windows 3 or DesqView. Both of these programs are able
  1370.    to run a DOS shell. When you do, this is a second level of COMMAND.COM.
  1371.  
  1372.    What is important is that SET commands and %NAME% commands in batch
  1373.    files deal only with the Shell Environment and not the Master
  1374.    Environment.
  1375.  
  1376.    DEALING WITH MULTIPLE DOS SHELLS
  1377.    DEALING WITH MULTIPLE DOS SHELLS
  1378.    DEALING WITH MULTIPLE DOS SHELLS
  1379.  
  1380.    If you are running more than one level of COMMAND.COM (Shelling from
  1381.    Windows, DesqView, Word Perfect Office) and having environment space
  1382.    problems here's a trick. Before you load up your fancy shells, put this
  1383.    in a batch file like your AUTOEXEC.BAT.
  1384.  
  1385.     SET MXCMD=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  1386.  
  1387.    This variable will be trashed by MarxMenu thus freeing up the
  1388.    environment space it occupied. This will not only allow MarxMenu to run
  1389.    but may solve problems with other programs you are running that need
  1390.    environment space as well.
  1391.  
  1392.  
  1393.  
  1394.    Computer Tyme MarxMenu Users Manual                     Page 14
  1395.    _______________________________________________________________
  1396.  
  1397.  
  1398.    MARXMENU AND TSR CONTROL
  1399.    MARXMENU AND TSR CONTROL
  1400.    MARXMENU AND TSR CONTROL
  1401.  
  1402.    MarxMenu along with the TSR utilities that come with MarxMenu, can load
  1403.    and unload TSRs under menu control. This is handy when you want to run a
  1404.    big application and need to free up some memory to do it. Since MarxMenu
  1405.    is a 0k menu system, unloading TSRs is possible but it has it's tricks.
  1406.  
  1407.    The problem you run into is that when one batch file calls another batch
  1408.    file, the way MarxMenu normally runs, DOS creates a small batch file
  1409.    control block in memory. This control block stays in memory after the
  1410.    TSR is released creating a region of trapped memory. Although this
  1411.    memory is freed, it isn't usable.
  1412.  
  1413.    The way around it is to jump to the batch file that releases memory
  1414.    instead of calling it. This is done by setting MXCMD to the name of the
  1415.    batch file you want to run. The only problem is that when you jump to
  1416.    the other batch file, it won't automatically return to MARX.BAT. You
  1417.    must therefore end your batch file with a command bringing you back to
  1418.    MARX.BAT.
  1419.  
  1420.     MEMHOG.BAT
  1421.     -----------
  1422.     Rem UnLoad SideKick
  1423.     RELEASE SK
  1424.     CD\MEMHOG
  1425.     MEMHOG
  1426.     MARK SK
  1427.     SK
  1428.     MARX MAIN
  1429.  
  1430.    In your MAIN menu:
  1431.  
  1432.     OnKey 'H'
  1433.        |MxCmd = MEMHOG
  1434.  
  1435.    See the documentation file on the TSR utilities disk for more
  1436.    information on how to use MARK and RELEASE.
  1437.  
  1438.  
  1439.  
  1440.    Computer Tyme MarxMenu Users Manual                     Page 15
  1441.    _______________________________________________________________
  1442.  
  1443.  
  1444.    NETWORK USERS:
  1445.    NETWORK USERS:
  1446.    NETWORK USERS:
  1447.  
  1448.    The main thing you have to worry about on a network is to make sure that
  1449.    when MarxMenu creates a temporary batch file, that it is a different one
  1450.    for each user on the network.
  1451.  
  1452.    This is handled several ways. If you are on a Novell network, MarxMenu
  1453.    uses your station number as part of the name for the temporary batch
  1454.    file. If you are not using Novell, then you will need to set an
  1455.    environment variable STATION for each workstation on your net. Each one
  1456.    has to be a different number.
  1457.  
  1458.     Example:
  1459.        SET STATION=5
  1460.  
  1461.    You must ensure that the user has enough access rights to create
  1462.    temporary batch files in the directory selected for temporary batch
  1463.    files. One solution is to create a batch file directory and give all the
  1464.    users full access rights to it.
  1465.  
  1466.    MarxMenu has been run on about every DOS based network that exists. If
  1467.    the network runs at all it will generally run MarxMenu. Among the
  1468.    networks that come to mind are Novell, Lantastic, Banyan, 3COM, Lan
  1469.    Manager, IBM, DECNET, ConCurrent DOS, and SCO VPIX. MarxMenu is running
  1470.    on networks as small as two users to as large as 20,000 users. In fact,
  1471.    the bigger your network, the more you need MarxMenu.
  1472.  
  1473.    NOVELL USERS:
  1474.    NOVELL USERS:
  1475.    NOVELL USERS:
  1476.  
  1477.    Novell is the most popular network on the market. We have added many
  1478.    enhancements for Novell networks to support things like logging in and
  1479.    logging out, drive mapping, group support, software metering, and status
  1480.    information.
  1481.  
  1482.    Although Novell is a high quality solid product it has its own
  1483.    "Personality" and many undocumented features otherwise known as bugs.
  1484.    Most people who are having trouble with MarxMenu under Novell are really
  1485.    having trouble with Novell. Quite frankly, we do more Novell support
  1486.    than we do MarxMenu support.
  1487.  
  1488.    Having said that, I own two Novell networks. One at the lab and one at
  1489.    home and I love my networks. But, I have spent hundreds of hours
  1490.    learning all the tricks. And to save you a phone call, and me a lot of
  1491.    time, I've decided to share these tricks here in my manual.
  1492.  
  1493.    Some of these tricks are from the Great Network Gurus themselves who are
  1494.    so advanced that they no longer exist in physical form. These people
  1495.    live in another dimension of total mental existence and can only be
  1496.    reached my modem. Some of them hang out on Compuserve.
  1497.  
  1498.  
  1499.  
  1500.    Computer Tyme MarxMenu Users Manual                     Page 16
  1501.    _______________________________________________________________
  1502.  
  1503.  
  1504.    I therefore strongly recommend that if you are a serious Novell user
  1505.    that you join Compuserve and hang out in the Novell section. And just
  1506.    because not everyone on Compuserve is a real person doesn't mean that
  1507.    you should feel uncomfortable asking them any question about your
  1508.    network that you need to ask.
  1509.  
  1510.    THE NOVELL MENU TRANSLATOR
  1511.    THE NOVELL MENU TRANSLATOR
  1512.    THE NOVELL MENU TRANSLATOR
  1513.  
  1514.    One nice bonus with Novell networks is that MarxMenu can translate your
  1515.    Novell menus to MarxMenu. This saves you the time of having to recode
  1516.    your system. What you do is type:
  1517.  
  1518.     MARXMENU NOVTRANS <menu>
  1519.  
  1520.    This translates your Novell MNU file to a MarxMenu MRX file. Your MNU
  1521.    file is unchanged. MarxMenu creates a TMP file containing the source
  1522.    code for the MRX file. Once you are satisfied with the MarxMenu file,
  1523.    you just delete the MNU file and rename the TMP file to MNU and forget
  1524.    that you ever had a Novell menu.
  1525.  
  1526.    Once the menu is translated you run it by typing MARX <menu> instead of
  1527.    MENU <menu>. MarxMenu can run Novell's menu better than Novell runs
  1528.    their own.
  1529.  
  1530.    LOGGING OUT UNDER MENU CONTROL
  1531.    LOGGING OUT UNDER MENU CONTROL
  1532.    LOGGING OUT UNDER MENU CONTROL
  1533.  
  1534.    Logging out under menu control is one of the trickiest things to do. The
  1535.    problem is that as soon as LOGOUT executes, you no longer have access to
  1536.    the network. This means that if you are in a batch file, you are going
  1537.    to get a "Missing Batch File" error, unless the batch file is in the
  1538.    \LOGIN directory.
  1539.  
  1540.    Another problem with logging out is making sure that your COMSPEC is
  1541.    pointing to a COMMAND.COM that is either on the local drive or in the
  1542.    \LOGIN directory. Otherwise you will get a "Cannot load COMMAND.COM"
  1543.    error.
  1544.  
  1545.    Another problem that you need to deal with is that your PATH command
  1546.    needs to be changed so that it doesn't refer to mapped drives that are
  1547.    no longer accessable.
  1548.  
  1549.    What you need to do is create a batch file in the \LOGIN directory
  1550.    called OFF.BAT.
  1551.  
  1552.     Example: F:\LOGIN\OFF.BAT
  1553.  
  1554.     CD\LOGIN
  1555.     SET COMSPEC=C:\COMMAND.COM
  1556.     LOGOUT
  1557.     C:
  1558.     PATH=C:\DOS
  1559.  
  1560.  
  1561.  
  1562.    Computer Tyme MarxMenu Users Manual                     Page 17
  1563.    _______________________________________________________________
  1564.  
  1565.  
  1566.    Setting up an OFF.BAT file is compatible with MarxMenu's automatic
  1567.    network logoff feature. This is where you can set the amount of time to
  1568.    wait at a menu before it automatically logs you off the network.
  1569.  
  1570.    Another way to logout under MarxMenu is to stuff the LOGOUT command into
  1571.    the keyboard buffer and exit MarxMenu.
  1572.  
  1573.     Example:
  1574.        OnKey ESC
  1575.          |StuffKBD 'LOGOUT' + CR
  1576.          |ExitMenu
  1577.  
  1578.    This is the cleanest way when possible.
  1579.  
  1580.    Another logout trick is to use the LOGOFF utility from the Computer Tyme
  1581.    Network Survival Kit. This program automatically fixes your PATH and
  1582.    COMSPEC after the logoff occurs.
  1583.  
  1584.    LOGGING IN WITH MARXMENU
  1585.    LOGGING IN WITH MARXMENU
  1586.    LOGGING IN WITH MARXMENU
  1587.  
  1588.    If there is any one thing that's trickier than logging out of a Novell
  1589.    network, is logging in. I have spent MANY hours struggling with Novell
  1590.    trying to get it right and I have finally figured it out. Much of this
  1591.    comes from the Novell gurus who hang out on Compuserve and know
  1592.    everything there is to know about Novell.
  1593.  
  1594.    The first thing you need to do is make up your mind that you are going
  1595.    to do it right. The technique here might seem somewhat cumbersome, but
  1596.    it works well and will keep you out of trouble.
  1597.  
  1598.    MarxMenu has the ability to log you into a network, map your drives, and
  1599.    set your environment strings without having to touch a Novell utility to
  1600.    do so. MarxMenu can completely eliminate the need for Novell login
  1601.    scripts. The advantage to using MarxMenu in the login is that you have
  1602.    the power of 500 commands to work with instead of just 25 or so.
  1603.  
  1604.  
  1605.  
  1606.    Computer Tyme MarxMenu Users Manual                     Page 18
  1607.    _______________________________________________________________
  1608.  
  1609.  
  1610.    THE CONFIG.SYS FILE
  1611.    THE CONFIG.SYS FILE
  1612.    THE CONFIG.SYS FILE
  1613.  
  1614.    The place to start is the place where DOS start when DOS boots. You MUST
  1615.    create a CONFIG.SYS file on your boot disk. The CONFIG.SYS tells DOS how
  1616.    many files and buffers to create, what device drivers to load, and the
  1617.    size of the Master Environment.
  1618.  
  1619.    Unless you are using special drivers, BUFFERS=40 and FILES=40 is a good
  1620.    place to start. STACKS 0,0 will gain you an extra 3k of ram. But the
  1621.    most important command is the shell statement. A CONFIG.SYS file might
  1622.    look like this:
  1623.  
  1624.     SHELL=COMMAND.COM /P /E:400
  1625.     BUFFERS=40
  1626.     FILES=40
  1627.     DEVICE=ANSI.SYS
  1628.  
  1629.    This sets up enough environment space to allow MarxMenu and DOS SET
  1630.    commands to work properly. You will also want to load any other device
  1631.    drivers like QEMM386.SYS or 386MAX.SYS to take advantage of other
  1632.    features of your computer. If you don't know about CONFIG.SYS files,
  1633.    read the DOS manual.
  1634.  
  1635.    Note: If you don't have a local hard disk and are booting from a floppy
  1636.    drive, set BUFFERS=4. If you are booting from a diskless workstation,
  1637.    set BUFFERS=1. BUFFERS are used for local drives only and have no effect
  1638.    on network drives. You save 1k of memory for every 2 buffers you don't
  1639.    use.
  1640.  
  1641.    THE AUTOEXEC.BAT FILE
  1642.    THE AUTOEXEC.BAT FILE
  1643.    THE AUTOEXEC.BAT FILE
  1644.  
  1645.    After the CONFIG.SYS is loaded the AUTOEXEC.BAT runs next. Here you load
  1646.    up your TSRs and network drivers. There are some important tricks to be
  1647.    used here as well.
  1648.  
  1649.    First of all, never load your network shell from your AUTOEXEC.BAT file.
  1650.    Always have it branch to another batch file called LOADNET to load the
  1651.    network shell. Use the autoexec.bat only to load special TSRs and the
  1652.    IPX. An autoexec.bat might look like this:
  1653.  
  1654.     @Echo Off
  1655.     Cls
  1656.     IPX
  1657.     SET NET=NET4.COM
  1658.     SET COMSPEC=X:COMMAND.COM
  1659.     LOADNET
  1660.  
  1661.  
  1662.  
  1663.    Computer Tyme MarxMenu Users Manual                     Page 19
  1664.    _______________________________________________________________
  1665.  
  1666.  
  1667.    The two SET commands are very important. The first sets a variable
  1668.    called NET to NET4.COM. This will be used later in LOADNET.BAT. By using
  1669.    this variable, you can have users running many different versions of DOS
  1670.    and still use the same LOADNET.BAT file. You could also use a command
  1671.    SET NET=LOADHI EMSNET4.EXE to take advantage of advanced memory manager
  1672.    software.
  1673.  
  1674.    Another trick is to run BESTNET from the Network Survival Kit. BestNet
  1675.    will automatically pick the best network shell and set the NET
  1676.    environment variable for you. You would use the command BESTNET instead
  1677.    of SET NET=NET4.COM in the AUTOEXEC.BAT file.
  1678.  
  1679.    The SET COMSPEC=X:COMMAND.COM is important if you are booting off of
  1680.    either a floppy drive or a diskless workstation. This assumes that X:
  1681.    will eventually be mapped to a directory on the network that has a valid
  1682.    COMMAND.COM in it.
  1683.  
  1684.    It is important to set the comspec BEFORE loading your NET shell. This
  1685.    prevents a problem where Netware wants to go back to the boot disk even
  1686.    after you change the comspec. I don't know why this works but it does.
  1687.    Trust Me. If you are going to use COMMAND.COM on drive C:, ignore this
  1688.    paragraph.
  1689.  
  1690.    Now we go to the LOADNET.BAT file.
  1691.  
  1692.     @Echo Off
  1693.     %NET%
  1694.     SET NET=
  1695.     F:
  1696.     STARTUP
  1697.  
  1698.    The big concept behind LOADNET is that this file is NEVER CHANGED. You
  1699.    put in on all your workstations and in the LOGIN directory and it is
  1700.    EXACTLY THE SAME for every computer in your network. Any changes to
  1701.    individual computers are made in the AUTOEXEC.BAT file.
  1702.  
  1703.    So why is this important. Because if you are running diskless
  1704.    workstations what happens is that while you are booting you have a
  1705.    mythical drive A:. As soon as your NET shell loads this drive
  1706.    dissappears out from under you and you end up in F:\LOGIN. If you are
  1707.    running LOADNET.BAT when this happens you drop out of A:LOADNET.BAT and
  1708.    land in the middle of F:\LOADNET.BAT. And if your LOADNET.BAT is exactly
  1709.    the same file as the LOADNET.BAT in the \LOGIN directory, you take off
  1710.    running like the transition never occured.
  1711.  
  1712.    Even if you are not running on diskless workstations now, you might go
  1713.    to it someday. It also creates good programming habits and helps you
  1714.    boot up cleanly.
  1715.  
  1716.  
  1717.  
  1718.    Computer Tyme MarxMenu Users Manual                     Page 20
  1719.    _______________________________________________________________
  1720.  
  1721.  
  1722.    Lets see what LOADNET does. The first line is @ECHO OFF, that's easy.
  1723.    The second line %NET% executes the network shell that you specified with
  1724.    the SET NET=NET4 command. This actually loads the network shell. The
  1725.    third line clears the NET variable freeing up space for other
  1726.    environment variables. F: switches you to drive F if you aren't there
  1727.    already. And finally STARTUP is the name of yet another batch file you
  1728.    jump to.
  1729.  
  1730.    The STARTUP.BAT file controls what happens AFTER LOADNET runs. This file
  1731.    can be freely changed so that LOADNET.BAT can stay the same. This lets
  1732.    you modify what happens AFTER the network shell is loaded.
  1733.  
  1734.    If you are using Novell's login program STARTUP.BAT might look like
  1735.    this:
  1736.  
  1737.     @Echo Off
  1738.     LOGIN
  1739.  
  1740.    THE SHELL.CFG FILE
  1741.    THE SHELL.CFG FILE
  1742.    THE SHELL.CFG FILE
  1743.  
  1744.    The SHELL.CFG file is used by Netware to configure the Netware shell.
  1745.    You should read the manuals on this to see if you need any of the many
  1746.    option available. I suggest you at least have the following commands in
  1747.    your SHELL.CFG file.
  1748.  
  1749.     cache buffers=4
  1750.     show dots=on
  1751.  
  1752.    The master network gurus tell me that cache buffers are just a waste of
  1753.    memory and do not provide any better performance. Every 2 cache buffers
  1754.    not used saves you 1k of memory. Show dots makes your network compatible
  1755.    with more software utilities and should be set on unless you have some
  1756.    other reason not to.
  1757.  
  1758.    USING A MENU FILE TO LOG IN
  1759.    USING A MENU FILE TO LOG IN
  1760.    USING A MENU FILE TO LOG IN
  1761.  
  1762.    If you are going to use MarxMenu to log in instead of Novell's
  1763.    utilities, you will want to print out the sample file LOGIN.MNU on your
  1764.    MarxMenu disk and study it. Your STARTUP.BAT file might look like this:
  1765.  
  1766.     @Echo Off
  1767.     SET BOOTUP=LOGIN
  1768.     MarxMenu Login
  1769.     %BOOTUP%
  1770.  
  1771.    If MarxMenu works correctly, it will change the environment variable
  1772.    %BOOTUP% to point to a file that it creates. If for some reason it fails
  1773.    (you make a mistake in the login), it will execute Novell's login and
  1774.    let you get in and fix it.
  1775.  
  1776.  
  1777.  
  1778.    Computer Tyme MarxMenu Users Manual                     Page 21
  1779.    _______________________________________________________________
  1780.  
  1781.  
  1782.    One word of caution. After modifing this menu, always run MARXCOMP LOGIN
  1783.    to compile it. Otherwise, if you boot up into it you won't have enough
  1784.    access rights to recompile automatically.
  1785.  
  1786.    NOVELL SEMAPHORES
  1787.    NOVELL SEMAPHORES
  1788.    NOVELL SEMAPHORES
  1789.  
  1790.    For a detailed explanation of Novell Semaphores, read the Novell
  1791.    manuals. What I've done is to export these functions to MarxMenu. I have
  1792.    implemented them slightly different than Novell did and have hidden all
  1793.    the nasties from you such as semaphore handles. All semaphores are
  1794.    accessed by name only.
  1795.  
  1796.    Here's a brief overview of semaphores. Semaphores are names of shared
  1797.    resources that the server keeps track of. Semaphores have three
  1798.    properties. They have a name, value and number of users. The name can be
  1799.    anything up to 48 characters long. The value is a number from -128 to
  1800.    127. If the value is less than 0, the resource the semaphore represents
  1801.    is considered used up.
  1802.  
  1803.    By opening a semaphore, you increase the number of users by one. By
  1804.    closing it, you decrease the number by one. If a single user opens a
  1805.    semaphore many times, it is only counted as one. When you log out, your
  1806.    semaphores are closed. This is also true if you turn your computer off,
  1807.    but it takes 15 minutes for the server to give up on you.
  1808.  
  1809.    The first user to open a semaphore creates it. The last user to close a
  1810.    semaphore deletes it. When a semaphore is created, a value can be
  1811.    assigned. If a semaphore is opened that already exists, the initial
  1812.    value is ignored.
  1813.  
  1814.    When NovWaitOnSemaphore is called by any user, the value is decremented.
  1815.    If the value is not below zero, NovWaitOnSemaphore returns true.
  1816.    Otherwise it returns false and the value is unchanged. The amount of
  1817.    time that NovWaitOnSemaphore will wait is controlled by the variable
  1818.    NovSemaphoreTimeOut.
  1819.  
  1820.    When NovSignalSemaphore is called by any user, the value is incremented.
  1821.    This allows other users to call NovWaitOnSemaphore and get a True value.
  1822.  
  1823.    NovSemaphoreUsers and NovSemaphoreValue are used to read the status of a
  1824.    semaphore without changing it's value.
  1825.  
  1826.    One of the major differences between how MarxMenu uses semaphores and
  1827.    the way Novell uses them is that normally a semaphore dies when the
  1828.    application finishes. This would normally prevent a 0k menu system from
  1829.    being able to use them. MarxMenu uses an interesting trick where it
  1830.    fools Netware into thinking that the semaphore belongs to another task.
  1831.    This allows the semaphore to live.
  1832.  
  1833.  
  1834.  
  1835.    Computer Tyme MarxMenu Users Manual                     Page 22
  1836.    _______________________________________________________________
  1837.  
  1838.  
  1839.    Semaphores can be tracked using FCONSOLE. Some versions of Netware have
  1840.    a bug in FCONSOLE that reports an open count that is 256 times the real
  1841.    count. Just divide by 256 for the right number.
  1842.  
  1843.    Semaphores can be used for software metering. This allows MarxMenu to be
  1844.    aware of what other users on the network are doing. Here are the basic
  1845.    tools, what you do with them is only limited by your imagination.
  1846.  
  1847.    RUNNING A MARXMENU
  1848.    RUNNING A MARXMENU
  1849.    RUNNING A MARXMENU
  1850.  
  1851.    MarxMenus are run by typing MARX and the name of a menu file such as
  1852.    SAMPLE.MNU. As discussed earlier, the menu file is a text file created
  1853.    with a text editor such as TEDIT.
  1854.  
  1855.     Usage: MARX <Menu Filename>
  1856.  
  1857.     Example:
  1858.        MARX SAMPLE
  1859.  
  1860.    In the above example, if SAMPLE.MRX doesn't exist, or is older than
  1861.    SAMPLE.MNU then MarxMenu will automatically load the complier,
  1862.    MARXCOMP.EXE to create a new SAMPLE.MRX file.
  1863.  
  1864.    In the never ending quest for more speed, MarxMenu is somewhat faster to
  1865.    load if you include the MRX extension.
  1866.  
  1867.     Example:
  1868.        MARX SAMPLE2.MRX
  1869.  
  1870.    By specifying the MRX extension, no test is made to compare the file
  1871.    date with the source file. Thus if you have changed the MNU file, you
  1872.    will still be running the old version. In order to force a recompile,
  1873.    type MARXCOMP SAMPLE.
  1874.  
  1875.    CUSTOMIZING MARXMENU SAMPLE FILES
  1876.    CUSTOMIZING MARXMENU SAMPLE FILES
  1877.    CUSTOMIZING MARXMENU SAMPLE FILES
  1878.  
  1879.    Included in the MarxMenu package are menu files which you can easily
  1880.    modify to execute your programs and perform other functions you desire.
  1881.    Using TEdit, the text editor included in this package, you can modify
  1882.    and customize these menu files.
  1883.  
  1884.    Also included to demonstrate the power and versatility of the menu
  1885.    system is a menu labeled NIM.MNU. This is a game written in the menu
  1886.    system that demonstrates some of the logic functions and programmability
  1887.    of the system. Use it for reference.
  1888.  
  1889.  
  1890.  
  1891.    Computer Tyme MarxMenu Users Manual                     Page 23
  1892.    _______________________________________________________________
  1893.  
  1894.  
  1895.     Here's a simple example of a menu file:
  1896.     ===================================
  1897.     ClearScreen
  1898.     DrawBox 30 9 25 8
  1899.     Writeln ' 1) Lotus'
  1900.     Writeln ' 2) dBase'
  1901.     Writeln ' 3) Wordstar'
  1902.     Writeln
  1903.     Write 'Select: '
  1904.  
  1905.     OnKey '1'
  1906.        cd\lotus
  1907.        123
  1908.  
  1909.     OnKey '2'
  1910.        cd\db3
  1911.        db3
  1912.  
  1913.     OnKey '3'
  1914.        cd\wordstar
  1915.        ws
  1916.  
  1917.     ====================================
  1918.  
  1919.    Notice in looking at the "OnKey" statements that all I have to do is
  1920.    tell MarxMenu how to get to the program. Although, MarxMenu takes care
  1921.    of reloading itself after exiting a selected program, its does not
  1922.    return to its own subdirectory as many other menu programs do.
  1923.  
  1924.    That means that if you execute a program in another subdirectory, when
  1925.    you come back to the menu, you remain in that subdirectory. If you
  1926.    normally run your applications with a batch file, consider having
  1927.    MarxMenu change directories and execute the program for you. This will
  1928.    eliminate debugging problems caused by the actions of your batch files.
  1929.  
  1930.    MENU ANALYSIS
  1931.    MENU ANALYSIS
  1932.    MENU ANALYSIS
  1933.  
  1934.    Let's start a simple analysis of the example menu file shown
  1935.    above. The ClearScreen statement simply clears the screen to
  1936.    give us a fresh workspace for the menu. DrawBox is the command to
  1937.    draw a box on the screen to contain some menu text. The Writeln
  1938.    command writes a line of text to the screen within the box, then
  1939.    positions the cursor on the next line. The menu text shows the
  1940.    available selection keys that the user has access to.
  1941.  
  1942.  
  1943.  
  1944.    Computer Tyme MarxMenu Users Manual                     Page 24
  1945.    _______________________________________________________________
  1946.  
  1947.  
  1948.    ONKEY STATEMENTS
  1949.    ONKEY STATEMENTS
  1950.    ONKEY STATEMENTS
  1951.  
  1952.    The OnKey statements control what is actually executed. OnKey
  1953.    statements also allow you to execute hidden commands when you do
  1954.    not want them to appear on the menu screen. One trick I use is to
  1955.    have an OnKey statement define a key that runs TEDIT on my
  1956.    personal menu file. I don't show this key on the menu to keep
  1957.    others from poking around in the file. For additional security
  1958.    a password can also be set up on this key.
  1959.  
  1960.    Normally you enter a line of text as if you were creating a BAT
  1961.    file to run your application. Like batch files, if one of your
  1962.    commands is a batch file, all the statements after it will not
  1963.    execute. To prevent this you can use the CALL command to call a
  1964.    batch file in DOS 3.3 or later, or COMMAND /C in DOS 3.0, 3.1 and
  1965.    3.2.
  1966.  
  1967.    Normally, text displayed under an OnKey statement is the same
  1968.    text as the batch file created by MarxMenu. There are some
  1969.    exceptions. If a line starts with a "|" (vertical bar), the line
  1970.    will be interpreted by MarxMenu instead of being written to a
  1971.    batch file. This allows commands such as "PASSWORD" to be used.
  1972.    String variables can be passed as part of a batch command if the
  1973.    name of the string variable starts with a "%" symbol.
  1974.  
  1975.    The spaces preceding the commands under the OnKey statement are
  1976.    for clarity only. They are not necessary for MarxMenu to function
  1977.    properly.
  1978.  
  1979.    POPUP MENUS
  1980.    POPUP MENUS
  1981.    POPUP MENUS
  1982.  
  1983.    If you want to create a popup menu within a menu you can do so by
  1984.    using a "label". A label is a keyword preceded by a colon. To
  1985.    call the popup menu, place the keyword on a line by itself
  1986.    preceded by a carat (Shift 6). The label will precede the popup
  1987.    menu definition.
  1988.  
  1989.    For example if you have a popup menu to load Smart Software, you could
  1990.    name the PopUpMenu Smart. To bring up the Smart PopUpMenu, define a key
  1991.    in your main menu for Smart like this:
  1992.  
  1993.     OnKey 'S'
  1994.        ^Smart
  1995.  
  1996.    The Smart menu itself might look something like this:
  1997.  
  1998.  
  1999.  
  2000.    Computer Tyme MarxMenu Users Manual                     Page 25
  2001.    _______________________________________________________________
  2002.  
  2003.  
  2004.     :Smart
  2005.     BoxHeaderColor ForeColor BackColor
  2006.     BoxBorderColor Yellow Green
  2007.     BoxInsideColor LCyan Green
  2008.     InverseColor Yellow Red
  2009.     BoxHeader = ' Smart Menu '
  2010.     DrawBox 45 16 20 6
  2011.     UseArrows 2 2 16 3
  2012.     ClearLine 205
  2013.     Writeln
  2014.     Writeln '  Data Base'
  2015.     Writeln '  Spread Sheet'
  2016.     Write   '  Word Processor'
  2017.  
  2018.     OnKey 'D'
  2019.       SM D
  2020.  
  2021.     OnKey 'S'
  2022.       |BoxHeaderColor ForeColor BackColor
  2023.       |BoxBorderColor Yellow Green
  2024.       |BoxInsideColor White Green
  2025.       |%1 = PickFile('C:\SMART\SPREAD\*.WS',4,5,17)
  2026.       SM S -ALOAD %1
  2027.  
  2028.     OnKey 'W'
  2029.       |BoxHeaderColor ForeColor BackColor
  2030.       |BoxBorderColor Yellow Green
  2031.       |BoxInsideColor White Green
  2032.       |%1 = PickFile('C:\SMART\WORD\*.DOC',4,5,17)
  2033.       SM W -ALOAD %1
  2034.  
  2035.    While developing the menu, program one of the keys to run your favorite
  2036.    editor on the menu file that you are creating. This way, as soon as the
  2037.    change is made, the results will show when you exit your editor. Since
  2038.    MarxMenu allows versatility in creating the look of your menus, a little
  2039.    trial and error will be required to make things look right.
  2040.  
  2041.  
  2042.  
  2043.    Computer Tyme MarxMenu Users Manual                     Page 26
  2044.    _______________________________________________________________
  2045.  
  2046.  
  2047.    THE CONSOLE
  2048.    THE CONSOLE
  2049.    THE CONSOLE
  2050.  
  2051.            +---| Console Functions |---+
  2052.            | 1 - Blank Screen          |
  2053.            | 2 - Set Blank Message     |
  2054.            | 3 - Lock Keyboard         |
  2055.            | 4 - Set Blank Time        |
  2056.            +---------------------------+
  2057.  
  2058.    The Console is a popup menu of built-in functions. To activate the
  2059.    console, press the TAB key. A menu will pop-up in the upper left hand
  2060.    corner of the screen. You can change the position of this popup menu
  2061.    with the ConsolePos function.
  2062.  
  2063.    The first command on the Console screen is Blank Screen. Enter 1 and the
  2064.    screen will blank immediately. It will remain blanked until a key is
  2065.    pressed. Enter 2 on the Console menu and you can change the message
  2066.    displayed on the Blank Screen display.
  2067.  
  2068.    Enter 3 and you will be prompted for a word to lock the keyboard. After
  2069.    you enter the lock word the screen will blank and the keyboard will be
  2070.    locked until the exact lock word is typed. Enter 4 to set the number of
  2071.    minutes to wait before blanking the screen.
  2072.  
  2073.    The lock word feature is handy for times when you must leave the
  2074.    keyboard but don't want menu commands displayed for all to see. It also
  2075.    effectively locks the keyboard so someone can't escape to DOS and test
  2076.    the format command on your hard disk. We run this menu on a Novell
  2077.    Network and don't want to let everyone have access to the Supervisors'
  2078.    power at the touch of the escape key should we leave the keyboard.
  2079.  
  2080.    REPOSITIONING THE TOP WINDOW
  2081.    REPOSITIONING THE TOP WINDOW
  2082.    REPOSITIONING THE TOP WINDOW
  2083.  
  2084.    One nice feature you can use to get the windows right is to turn on the
  2085.    scroll lock. This lets you move the top window around the screen using
  2086.    the arrow keys so you can see how it looks. Then you can go into your
  2087.    menu code and set it permanently.
  2088.  
  2089.    Set Scroll Lock to "on". On most keyboards, a scroll lock LED will light
  2090.    up. Now use the arrow keys to move the top window to any position on the
  2091.    screen. Neat Huh?
  2092.  
  2093.  
  2094.  
  2095.    Computer Tyme MarxMenu Users Manual                     Page 27
  2096.    _______________________________________________________________
  2097.  
  2098.  
  2099.    MOUSE SUPPORT
  2100.    MOUSE SUPPORT
  2101.    MOUSE SUPPORT
  2102.  
  2103.    If you have a standard mouse driver, MarxMenu will detect it and use it
  2104.    automatically. The left button on the mouse is the same as pressing
  2105.    return. The right button on the mouse is the same as pressing escape.
  2106.    Pressing both buttons on the mouse is the same as pressing the tab key.
  2107.    As of now, I'm not yet using the center button on the mouse for
  2108.    anything.
  2109.  
  2110.    The sensitivity of the mouse can be controlled using the MouseHorizontal
  2111.    and MouseVertical commands.
  2112.  
  2113.    STARTING OFF THE EASY WAY
  2114.    STARTING OFF THE EASY WAY
  2115.    STARTING OFF THE EASY WAY
  2116.  
  2117.    For those of you who want to just get a menu going and don't want
  2118.    anything complicated we have included a menu called the LEVEL1 menu.
  2119.    This menu is a fill in the blank type of menu that will get you going
  2120.    quickly and easilly.
  2121.  
  2122.    This menu requires no programming and explains itself. You run it by
  2123.    typing the command:
  2124.  
  2125.     MARX LEVEL1
  2126.  
  2127.    The first thing it does is scan your drive to find the directories. Then
  2128.    you just answer the questions and fill in the menu. This isn't as
  2129.    powerful as programming your own menu, but if you want something quick
  2130.    and dirty, this may be the answer for you.
  2131.  
  2132.    ABOUT VARIABLES
  2133.    ABOUT VARIABLES
  2134.    ABOUT VARIABLES
  2135.  
  2136.    One of the most unusual things about MarxMenu is its variables. MarxMenu
  2137.    handles variables differently than any other programming language. For
  2138.    the experienced programmer, this may require some adjustment since it's
  2139.    like getting used to driving a Cadillac after driving a VW Beetle.
  2140.  
  2141.    All variables in MarxMenu are like an empty box that can contain
  2142.    anything. A variable can be a number, boolean, string, file, array, etc.
  2143.    The type of variable is controlled internally and the user need not
  2144.    declare variable types.
  2145.  
  2146.    Variables are created with the VAR command:
  2147.  
  2148.     Var X Y Z
  2149.  
  2150.    If the word VAR is on a line by itself, the following lines, up to a
  2151.    blank line, are considered variable names.
  2152.  
  2153.  
  2154.  
  2155.    Computer Tyme MarxMenu Users Manual                     Page 28
  2156.    _______________________________________________________________
  2157.  
  2158.  
  2159.     Var
  2160.       MyAge
  2161.       YourAge
  2162.       HisAge
  2163.       HerAge
  2164.  
  2165.    Variables are initialized to null values; 0 for Numbers, False for
  2166.    Booleans, and '' for strings. Initial values can be set when the
  2167.    variable is created.
  2168.  
  2169.     Var
  2170.       X = 6
  2171.       MyName = 'Marc'
  2172.       Programmer = True
  2173.  
  2174.    Variables can change variable types. If you write a number to a string
  2175.    variable, the variable changes to a number.
  2176.  
  2177.     X = '234'
  2178.     X = Value(X)
  2179.  
  2180.    This is valid in MarxMenu. X now is a number and contains the value 234.
  2181.  
  2182.    Number variables are 32-bit integers ranging between plus or minus
  2183.    2,147,483,647.
  2184.  
  2185.    Boolean variables are True or False.
  2186.  
  2187.    String variables are limited to 255 characters.
  2188.  
  2189.    In MarxMenu, string literals are delimited by either single or double
  2190.    quotes.
  2191.  
  2192.     "This can't be yogurt!"
  2193.     'Lincoln said "Four score and seven years ago ..." '
  2194.  
  2195.    Numbers beginning with a '$' indicate base 16 or hex numbers.
  2196.  
  2197.    When choosing variable names, it is good programming practice to choose
  2198.    long meaningful names. This allows yourself and others to be able to
  2199.    read menus and follow the logic more easily.
  2200.  
  2201.  
  2202.  
  2203.    Computer Tyme MarxMenu Users Manual                     Page 29
  2204.    _______________________________________________________________
  2205.  
  2206.  
  2207.    DATES
  2208.    DATES
  2209.    DATES
  2210.  
  2211.    Dates in MarxMenu are stored as the number of seconds since Junuary 1st
  2212.    1980. This gives MarxMenu a Date range of 68 years. By subtracting two
  2213.    dates, you get the number of seconds between two peroids of time.
  2214.  
  2215.    MarxMenu has several commands that convert text strings to dates. Here
  2216.    are some examples of how MarxMenu sees text dates.
  2217.  
  2218.     Examples:
  2219.       '4-7-91'                 ;04-07-1991 00:00:00
  2220.       'April 7th, 1991 4:35pm' ;04-07-1991 16:35:00
  2221.       '12:35:23a'              ;04-07-1991 00:35:23
  2222.       '3:15'                   ;04-07-1991 03:15:00
  2223.  
  2224.    If the string can't be converted, then BadDate is set to true.
  2225.  
  2226.    REAL NUMBERS
  2227.    REAL NUMBERS
  2228.    REAL NUMBERS
  2229.  
  2230.    So what's the difference between ordinary numbers and real numbers?
  2231.    Ordinary numbers in MarxMenu are 32 bit integers. These are numbers
  2232.    whose range is about plus or minus two billion. Integers are whole
  2233.    numbers and do not include any fractions.
  2234.  
  2235.    This is why MarxMenu has included REAL numbers (also known as Floating
  2236.    Point numbers). Real numbers in MarxMenu use BCD (Binary Coded Decimal)
  2237.    with 18 digits of accuracy. They have a range of 10 to the plus or minus
  2238.    63rd power, which means up to 63 zeros either side of the decimal point.
  2239.    This lets you work with very big and very small numbers.  MarxMenu has
  2240.    smart rounding algorithms so that 1.0 / 3 * 3 = 1.0 and not
  2241.    0.999999999999999999 like in most languages.
  2242.  
  2243.    Real numbers are specified by using a decimal point. Thus 5.0 specifies
  2244.    a real number. Most normal MarxMenu functions still require the standard
  2245.    32 bit integers. If you get the error: 'REAL found where INTEGER
  2246.    expected.' You need to use an integer.
  2247.  
  2248.    If an integer is passed where a real is expected, the integer is
  2249.    automatically converted to a real. Thus:
  2250.  
  2251.     6.0 * 3 = 18.0
  2252.  
  2253.    The Value function returns real numbers if a decimal point is used in
  2254.    the string. All the relevant math functions will work with reals as well
  2255.    as comparison operators.
  2256.  
  2257.    MarxMenu supports a variety of functions for real numbers. It has trig
  2258.    functions, log functions, and exponential functions. So why do you need
  2259.    real numbers in a menu program? I don't know. I had a library and
  2260.    threw them in. I figure someone will need them someday.
  2261.  
  2262.  
  2263.  
  2264.    Computer Tyme MarxMenu Users Manual                     Page 30
  2265.    _______________________________________________________________
  2266.  
  2267.  
  2268.    With real numbers you can do trigonometry calculations like those
  2269.    discovered by the ancient Indian chief Pythagoras who discovered what is
  2270.    now know as Pythagoras's triangle.
  2271.  
  2272.    Now I know that a lot of you were taught in Math class that Pythagoras
  2273.    was Greek. Well, it's just not so. Let me tell you the real story:
  2274.  
  2275.    Pythagoras was an Indian chief that had three wives. Two of the wives
  2276.    were twins and weighed 120 pounds each. And they sat next to Pythagoras
  2277.    on a pair of twin deer hides.
  2278.  
  2279.    But Pythagoras also had a third wife who was a large fat woman who sat
  2280.    across from Pythagoras on a hypopotamus hide. This wife weighed 240
  2281.    pounds.
  2282.  
  2283.    What Pythagoras discovered was that the squaw on the hypopotamus was
  2284.    equal to the sum of the squaws on the other two hides!
  2285.  
  2286.    LOCAL VARIABLES
  2287.    LOCAL VARIABLES
  2288.    LOCAL VARIABLES
  2289.  
  2290.    MarxMenu also supports local variables. Variables declared within
  2291.    procedures become local variables. Local variables are just like global
  2292.    variables in that you can use them as multidimensional arrays. When the
  2293.    procedure finishes, all local variables are disposed.
  2294.  
  2295.    If a local variable has the same name as a global variable, the local
  2296.    variable will be used.
  2297.  
  2298.    PASSING PARAMETERS TO PROCEDURES
  2299.    PASSING PARAMETERS TO PROCEDURES
  2300.    PASSING PARAMETERS TO PROCEDURES
  2301.  
  2302.    Procedures can accept parameters by declaring variable names on the same
  2303.    line as the name of the procedure.
  2304.  
  2305.    Procedures can return variables by using the Return command. Return
  2306.    exits the procedure returning the parameters on the same line as the
  2307.    Return statement.
  2308.  
  2309.     Example:
  2310.  
  2311.     Procedure Factorial (X)
  2312.     var Y Z
  2313.        Y = 1
  2314.        Z = 1
  2315.        while Y <= X
  2316.           Z = Y * Z
  2317.           Y = Y + 1
  2318.        endwhile
  2319.        Writeln X ' factorial is ' Z
  2320.     endproc
  2321.  
  2322.    In this example, if you were to use Factorial (5) you would get:
  2323.  
  2324.  
  2325.  
  2326.    Computer Tyme MarxMenu Users Manual                     Page 31
  2327.    _______________________________________________________________
  2328.  
  2329.  
  2330.     5 factorial is 120
  2331.  
  2332.     Another Example:
  2333.  
  2334.     Procedure AskYesNo (Question)
  2335.     var YesNo
  2336.        DrawBox (34 - (Length(Question) / 2)) 21 Length(Question) + 14 3
  2337.        TextColor LCyan Blue
  2338.        UseArrows Off
  2339.        Write ' ',Question,' (Y/N) '
  2340.        YesNo = UpperCase(ReadKey)
  2341.        YesNo = YesNo = 'Y'
  2342.        if YesNo
  2343.           Write 'Yes'
  2344.        else
  2345.           Write 'No'
  2346.        endif
  2347.        Wait 50
  2348.        EraseTopWindow
  2349.        Return (YesNo)
  2350.     EndProc
  2351.  
  2352.     if AskYesNo 'Do you want to continue? ' then Continue
  2353.  
  2354.    In this example, MarxMenu draws a box and asks a question and waits for
  2355.    a Yes or No answer.
  2356.  
  2357.    Arrays can be passed as parameters. Parameters are passed by value not
  2358.    by reference. This means that any changes to the passed parameter do not
  2359.    affect the original value.
  2360.  
  2361.    You can copy an array by assigning it equal to another array.
  2362.  
  2363.     Example:
  2364.  
  2365.     Array1 = Array2
  2366.  
  2367.    This creates Array1 with a copy of all the elements of Array2. The
  2368.    previous contents of Array1 are overwritten.
  2369.  
  2370.  
  2371.  
  2372.    Computer Tyme MarxMenu Users Manual                     Page 32
  2373.    _______________________________________________________________
  2374.  
  2375.  
  2376.    ABOUT CONSTANTS
  2377.    ABOUT CONSTANTS
  2378.    ABOUT CONSTANTS
  2379.  
  2380.    Constants are used to give values meaningful names. By using constants a
  2381.    value can be assigned once and the constant name used throughout the
  2382.    menu program. This way, if you change the value of the constant, all the
  2383.    places where that constant is used automatically change.
  2384.  
  2385.    This is good programming practice.
  2386.  
  2387.     Examples:
  2388.  
  2389.     Const States = 50 CPU = '80386 SX' WeekEnd = True
  2390.  
  2391.     or
  2392.  
  2393.     Const
  2394.        States = 50
  2395.        CPU = '80386 SX'
  2396.        WeekEnd = True
  2397.  
  2398.    Using the word STATES is just like using 50. Using CPU is just like
  2399.    using '80386 SX'. But if throughout my menu I use CPU, and then I get a
  2400.    new computer with a 80486, I can just change one line:
  2401.  
  2402.     Const CPU = '80486'
  2403.  
  2404.    And all the places I used CPU changes to '80486'. This is the correct
  2405.    way to program.
  2406.  
  2407.    ABOUT ARRAYS
  2408.    ABOUT ARRAYS
  2409.    ABOUT ARRAYS
  2410.  
  2411.    MarxMenu supports multidimensional arrays up to 31 dimensions. Unlike
  2412.    other programming languages, arrays need not be declared. MarxMenu
  2413.    creates arrays "on the fly" and automatically takes care of the array
  2414.    size and number of dimensions.
  2415.  
  2416.    Another unusual feature of MarxMenu arrays is that they are an array of
  2417.    MarxMenu variables. This means that elements of MarxMenu arrays need not
  2418.    be of the same type. Element 1 can be a number, element 2 can be a
  2419.    string and element 3 can be another array.
  2420.  
  2421.    This type of variable management leads to the easy creation of very
  2422.    powerful data structures as you will see.
  2423.  
  2424.     Var X
  2425.  
  2426.     X[1] = 'Element 1'
  2427.     X[2] = 3
  2428.     X[3] = True
  2429.     X[4,6] = 9
  2430.     X[4,7] = 'Ten'
  2431.  
  2432.  
  2433.  
  2434.    Computer Tyme MarxMenu Users Manual                     Page 33
  2435.    _______________________________________________________________
  2436.  
  2437.  
  2438.    These are all valid statements. MarxMenu creates a two dimensional array
  2439.    here. If we now execute the following statement:
  2440.  
  2441.     X[4] = X[4,6] + X[2]
  2442.  
  2443.    X[4] becomes equal to 12 but variables X[4,6] and X[4,7] are lost. This
  2444.    is because we have changed an array into a number. MarxMenu
  2445.    automatically handles the deallocation of memory used by this array and
  2446.    its elements and returns the space the used to the memory pool.
  2447.  
  2448.    ABOUT QUALIFIERS
  2449.    ABOUT QUALIFIERS
  2450.    ABOUT QUALIFIERS
  2451.  
  2452.    Qualifiers are named indexes into arrays. They are used to make the
  2453.    source menu file more readable and more organized.
  2454.  
  2455.    Suppose we are creating a data structure to deal with places in the
  2456.    United States. First we will need an array for States.
  2457.  
  2458.     Var States
  2459.  
  2460.     We want to store some facts about the states.
  2461.  
  2462.     Qualifier
  2463.        Population
  2464.        Bird
  2465.        Motto
  2466.        County
  2467.  
  2468.     State[3].Population = 10000000
  2469.     State[3].Bird = 'Chicken'
  2470.     State[3].Motto = 'Best politicians money can buy!'
  2471.  
  2472.    Now states have counties and counties have county seats, sheriffs, and
  2473.    cities.
  2474.  
  2475.     Qualifer
  2476.        Sheriff
  2477.        Seat
  2478.        City
  2479.  
  2480.     State[3].County[7].Sheriff = 'Buck InBred'
  2481.     State[3].County[7].Seat = 'Possum Trot'
  2482.  
  2483.    Now counties have cities and cities have schools, mayors, churches, and
  2484.    taxes.
  2485.  
  2486.     Qualifier
  2487.        Schools
  2488.        Mayor
  2489.        Churches
  2490.        Taxes
  2491.  
  2492.  
  2493.  
  2494.    Computer Tyme MarxMenu Users Manual                     Page 34
  2495.    _______________________________________________________________
  2496.  
  2497.  
  2498.     State[3].County[7].City[9].Schools = 8
  2499.     State[3].County[7].City[9].Mayor = 'Virgil Collins'
  2500.     State[3].County[7].City[9].Churches = 120
  2501.     State[3].County[7].City[9].Taxes = '$100,000,000'
  2502.  
  2503.    The above line is the same as:
  2504.  
  2505.     State[3,4,7,3,9,4] = '$100,000,000'
  2506.  
  2507.    As you can see with qualifiers, it is easy to create multidimensional
  2508.    arrays in a way that is organized and readable.
  2509.  
  2510.    In this example, the qualifier Population became equal to 1. Bird became
  2511.    equal to 2. The variable references, State[3].Bird and State[3,2] are
  2512.    the same. It's just that one is more readable than the other. Qualifiers
  2513.    normally begin by assigning 1 to the first name and 2 to the second
  2514.    etc. This can be modified.
  2515.  
  2516.     Qualifier
  2517.        Color = 7
  2518.        Size
  2519.        Shape
  2520.  
  2521.    In this case Color becomes the number 7; Size becomes the number 8; and
  2522.    Shape becomes the number 9.
  2523.  
  2524.    COMMENTS IN MENU FILES
  2525.    COMMENTS IN MENU FILES
  2526.    COMMENTS IN MENU FILES
  2527.  
  2528.    MarxMenu has three ways to add comments to a menu file. The first way is
  2529.    with the Comment command.
  2530.  
  2531.     Comment
  2532.     ========================
  2533.     This is a comment block.
  2534.     ========================
  2535.     EndComment
  2536.  
  2537.    All lines up to EndComment are ignored.
  2538.  
  2539.    The second way is with a ';'. All text to the right of the ';'
  2540.    (semicolon) is ignored.
  2541.  
  2542.     BlankTime = 20  ;this is where we set the blank time.
  2543.  
  2544.    The third way is using {} or curly braces. Anything inside the curly
  2545.    braces is ignored. Curly braces can be nested.
  2546.  
  2547.     {All of {this} is a comment.}
  2548.  
  2549.  
  2550.  
  2551.    Computer Tyme MarxMenu Users Manual                     Page 35
  2552.    _______________________________________________________________
  2553.  
  2554.  
  2555.    Comments are ignored by the compiler and cost you nothing in execution
  2556.    speed. Comments can save you a lot of time if you have to come back
  2557.    later and work on your menu, or if someone else has to work on it.
  2558.    Therefore, I encourage you to use comments as much as possible.
  2559.  
  2560.    THE MARXMENU COMPILER
  2561.    THE MARXMENU COMPILER
  2562.    THE MARXMENU COMPILER
  2563.  
  2564.    MarxMenu reads your MNU files and creates MRX files. These MRX files are
  2565.    a highly digested form of the MNU file that you created. MRX files are
  2566.    the compiled files.
  2567.  
  2568.    When you run MarxMenu, the interpreter MARXMENU.EXE looks for the menu
  2569.    file with the MRX extension. If it doesn't find it, MARXMENU.EXE will
  2570.    automatically load MARXCOMP.EXE and compile the menu. MARXMENU.EXE also
  2571.    compares the file dates of the MNU and the MRX files. If the MNU file is
  2572.    newer than the MRX file, the complier will be loaded.
  2573.  
  2574.    MarxMenu will also force a compile if the MRX file was not complied by
  2575.    the same version and release date of the MarxMenu you are using. MRX
  2576.    files are not compatible from one version of MarxMenu to the next.
  2577.  
  2578.    You can also force a compile from the command line by typing MARXCOMP
  2579.    <menu>. If you are on a network and using MarxMenu to log you in, make
  2580.    sure you run the complier if you change your login menu file.
  2581.  
  2582.    Once your menus are written, you can remove the MNU file and
  2583.    MARXCOMP.EXE from the system. This prevents anyone from modifying your
  2584.    menus. The MRX files are scrambled for security. This prevents probing
  2585.    eyes from reading strings in the MRX files.
  2586.  
  2587.    COMPILER COMPATIBILITY
  2588.    COMPILER COMPATIBILITY
  2589.    COMPILER COMPATIBILITY
  2590.  
  2591.    The MarxMenu compiler is fully compatible with earlier versions of
  2592.    MarxMenu with a few exceptions. The new compiler does a lot more error
  2593.    checking than earlier versions of MarxMenu and will catch errors that
  2594.    you used to get away with. Other than that, the only difference you
  2595.    should notice will be a speed increase.
  2596.  
  2597.    Earlier versions of MarxMenu had separate names for variable types. The
  2598.    names $VAR, BVAR, #VAR, and FILEVAR act the same as typing VAR.
  2599.  
  2600.    Very early versions of MarxMenu had a different form of the USEARROWS
  2601.    command that required 4 to 5 numbers after it. If you run into this
  2602.    error, just get rid of the numbers after USEARROWS and it will work
  2603.    fine.
  2604.  
  2605.  
  2606.  
  2607.    Computer Tyme MarxMenu Users Manual                     Page 36
  2608.    _______________________________________________________________
  2609.  
  2610.  
  2611.    A WORD ABOUT DOS VERSIONS .....
  2612.    A WORD ABOUT DOS VERSIONS .....
  2613.    A WORD ABOUT DOS VERSIONS .....
  2614.  
  2615.    Versions of DOS below 3.3 will cause MarxMenu to use 3.5k of ram where
  2616.    3.3 DOS and above use no memory. 3.2 DOS is very buggy and should be
  2617.    replaced. 3.1 DOS isn't too bad for bugs but if you're using the BACKUP
  2618.    and RESTORE programs that came with it, you're in trouble. They don't
  2619.    work on large files. You'll find that out if you try to restore one of
  2620.    them.
  2621.  
  2622.    MS-DOS 4.01 seems to be pretty clean provided you have the April-89
  2623.    release or later. To determine if you do, check the file date on
  2624.    COMMAND.COM. Earlier versions of DOS 4.01 have SERIOUS BUGS. If you are
  2625.    running any DOS 4 earlier than April-89 you should upgrade immediately.
  2626.  
  2627.    We are happy to announce that MarxMenu runs under DOS 5.0 with no
  2628.    problems and requiring no modifications. We are in the process of adding
  2629.    hooks to take advantage of new features of DOS 5. One feature
  2630.    implemented is the Idle Loop call which allows MarxMenu to conserve CPU
  2631.    power when it's not doing anything. This makes it work better under
  2632.    DesqView and Windows.
  2633.  
  2634.    DR-DOS or EZ-DOS are pretty good also. It is very compatible as long as
  2635.    you don't get too strange with it. I recommend version 3.4 or later.
  2636.    4DOS is also pretty good but sometimes some of the advanced features in
  2637.    this product can cause it to behave differently than DOS. This requires
  2638.    extra care when writing your menus.
  2639.  
  2640.    MarxMenu should work correctly on 386 type multiuser operating systems
  2641.    such as Digital Research's Concurrent DOS 386 or SCO VPIX DOS emulators.
  2642.  
  2643.    MarxMenu will not run correctly under DesqView 2.26. It will run under
  2644.    2.25 or 3.21. So if you are running 2.26, it needs to be upgraded.
  2645.    MarxMenu contains several support functions for DesqView.
  2646.  
  2647.    If you are running under some weird DOS and are having problems, try it
  2648.    under "regular" DOS and see if it goes away. If it does, try to find out
  2649.    what it is about your weird DOS that makes it not work right. I am
  2650.    interested in being compatible with as many systems as I can. Let me
  2651.    know if you are having problems. But also, try to get your wierd DOS
  2652.    vendors to clean up their act.
  2653.  
  2654.    A WORD ABOUT BUGS .....
  2655.    A WORD ABOUT BUGS .....
  2656.    A WORD ABOUT BUGS .....
  2657.  
  2658.    Although I try to create perfect bug free software, every now and then
  2659.    even I make a mistak. If you find one, let me know and I'll fix it.
  2660.  
  2661.  
  2662.  
  2663.    Computer Tyme MarxMenu Users Manual                     Page 37
  2664.    _______________________________________________________________
  2665.  
  2666.  
  2667.    TIPS FROM THE MASTER
  2668.    TIPS FROM THE MASTER
  2669.    TIPS FROM THE MASTER
  2670.  
  2671.    Since MarxMenu is a programing language, I want to talk about what
  2672.    programing is and how it is accomplished. I want to dispel some myths
  2673.    and fears relating to it and introduce you to techniques that will help
  2674.    you write code neatly, quickly, and efficiently. From the outside,
  2675.    programming looks like magic; but once you know a few of the tricks, its
  2676.    really not too hard.
  2677.  
  2678.    Many of us who were raised on 50s and 60s science fiction television
  2679.    learned that it is the brainy types who deal with computers. It almost
  2680.    gives you the impression that the computer is smart and you are dumb. As
  2681.    you use the computer, it is evaluating you, and if it figures out that
  2682.    its smarter than you, it can get your job and replace you.
  2683.  
  2684.    COMPUTERS DO SIMPLE TASKS
  2685.    COMPUTERS DO SIMPLE TASKS
  2686.    COMPUTERS DO SIMPLE TASKS
  2687.  
  2688.    A computer is a simple device. It does simple tasks. It just does them
  2689.    very fast and accurately. Computers don't even know basic things like
  2690.    how to write letters on the screen or how to read the keyboard. These
  2691.    are programs that the computer runs. Someone had to program your
  2692.    computer to do even the simplest of tasks.
  2693.  
  2694.    As you learn to use MarxMenu start with the simple menus. The SAMPLE.MNU
  2695.    is a very easy program. Study it and understand how it works. Make a
  2696.    copy of it and change one selection to run one of your programs.
  2697.  
  2698.    Once you have changed one selection, change several more. Now MarxMenu
  2699.    is running your programs, and you have made it work. Then try something
  2700.    new. Add more selections. Change the size and position of the box to fit
  2701.    your needs.
  2702.  
  2703.    Take the time to play with it. Try new commands. Build up your menu. Be
  2704.    artistic. The more you work with it, the more you will learn.
  2705.  
  2706.  
  2707.  
  2708.    Computer Tyme MarxMenu Users Manual                     Page 38
  2709.    _______________________________________________________________
  2710.  
  2711.  
  2712.    COMPLEX TASKS ARE MADE OF SIMPLE TASKS
  2713.    COMPLEX TASKS ARE MADE OF SIMPLE TASKS
  2714.    COMPLEX TASKS ARE MADE OF SIMPLE TASKS
  2715.  
  2716.    As you learn more about MarxMenu, move on to SAMPLE2.MNU. Here we use
  2717.    more of the power of the MarxMenu language. As you study this menu, you
  2718.    will notice something. Even though it looks complex, it is really a
  2719.    collection of simple tasks. Understand how the moving windows work.
  2720.    Understand that the pop-up menus are just like the main menu. You will
  2721.    see that it is really not a complex menu at all. It is a lot of simple
  2722.    processes hooked together.
  2723.  
  2724.    That is one of the main concepts behind programming. Complex tasks are
  2725.    built out of simple tasks. As you learn the simple tasks, you will
  2726.    quickly understand how to connect them to accomplish complex tasks.
  2727.  
  2728.    When one sees a castle, one can't help but to be impressed. But castles
  2729.    are made of stones. And you can't build castles until you understand how
  2730.    stones work. Then you realize that a castle is just a bunch of stones
  2731.    hooked together. Programming is just like that.
  2732.  
  2733.    To successfully understand MarxMenu, start at the bottom and work your
  2734.    way up. Each little trick you learn becomes another building block for
  2735.    the next trick. What you start with becomes the foundation for the work
  2736.    that you will eventually produce.
  2737.  
  2738.    LEARNING GOOD PROGRAMMING HABITS
  2739.    LEARNING GOOD PROGRAMMING HABITS
  2740.    LEARNING GOOD PROGRAMMING HABITS
  2741.  
  2742.    Programming has its pitfalls, here I hope to give you some tips that
  2743.    will help you avoid common mistakes. This, I hope will give you a head
  2744.    start on the road to MarxMenu being done right.
  2745.  
  2746.    The first concept is patience. Rome wasn't built in a day. You may not
  2747.    be able to write grand and glorious menus the first try. In fact, you
  2748.    may have trouble getting the damn thing to work at all. As you have
  2749.    probably already noticed, no program is perfect. Sometimes there are
  2750.    errorrs in the manual. Sometimes it just doesn't work like you expected,
  2751.    or does not work the same way as other programs that are familiar to
  2752.    you.
  2753.  
  2754.    But, once you complete the installation, give it some time and realize
  2755.    that there is a lot of potential here. Approach all challenges with a
  2756.    good attitude.
  2757.  
  2758.  
  2759.  
  2760.    Computer Tyme MarxMenu Users Manual                     Page 39
  2761.    _______________________________________________________________
  2762.  
  2763.  
  2764.    USE LONG NAMES
  2765.    USE LONG NAMES
  2766.    USE LONG NAMES
  2767.  
  2768.    I learned computers the hard way. Out on the streets. Hanging around
  2769.    with other computer nerds in the late 70s who never went to college
  2770.    either. I was known as a Bit Wit. My first real computer was an IMSAI
  2771.    kit. Actually, it wasn't all IMSAI, it was a combination of several kits
  2772.    where no two boards came from the same supplier. It was in an IMSAI box,
  2773.    so I call it an IMSAI.
  2774.  
  2775.    It was all supposed to work together the salesman told me the day before
  2776.    they went out of business. And it all did after some redesigning. I was
  2777.    tired of fixing CB radios for a living and decided that computers were
  2778.    here to stay and that I was going to learn about them.
  2779.  
  2780.    With that in mind, everything that went wrong became an opportunity for
  2781.    growth. Not that I looked forward to things not working. I programmed
  2782.    the thing from scratch, loading binary codes into memory from an array
  2783.    of switches on the front panel.
  2784.  
  2785.    The first program I wrote ran the EPROM burner, which was the only
  2786.    storage device I had. After I saved this program on a chip, I used it to
  2787.    load the second program onto the chip.
  2788.  
  2789.    Eventually I wrote enough software to talk to the screen and keyboard.
  2790.    Now I could type hex codes on the screen and save them to a chip.
  2791.    Eventually I wrote a tape driver and could save stuff on tape. Later, I
  2792.    traded for a North Star disk drive and had a disk system. One 90k
  2793.    floppy. I thought I was in heaven.
  2794.  
  2795.    I was intimately familiar with my computer. All my programs were in
  2796.    object code with no documentation whatsoever. At that point, a friend of
  2797.    mine, Rufus, turned me on to a language called FORTH.
  2798.  
  2799.    Being an interesting language and very powerful, I typed in the whole
  2800.    compiler in hex and adapted it to work on my system. Once I got Forth
  2801.    up, I wrote a line editor in it. I then used the line editor to write a
  2802.    screen editor. With the screen editor, I rewrote Forth in Forth. The
  2803.    language compiled itself.
  2804.  
  2805.    From working with Forth (which is as much a religion as a programming
  2806.    language) I learned both good and bad habits. Forth is a write only
  2807.    language and is almost impossible to read even with the best of
  2808.    documentation. On the other hand, it is as close to the machine as you
  2809.    can get in a high level language.
  2810.  
  2811.  
  2812.  
  2813.    Computer Tyme MarxMenu Users Manual                     Page 40
  2814.    _______________________________________________________________
  2815.  
  2816.  
  2817.    After opening up a computer store in 1984, it became time to make the
  2818.    jump from CP/M to the DOS world. Turbo Pascal offered an interesting
  2819.    solution. They had both a CP/M and DOS compiler. This meant that
  2820.    programs I wrote would run on both machines. The thing that struck me
  2821.    about Pascal was that I could read it better than Forth, and I didn't
  2822.    even know the language. Not only that, but I could follow the programs
  2823.    that other people wrote and incorporate their code into my programs.
  2824.  
  2825.    The more programs I wrote, the more I came to appreciate a language that
  2826.    was reader friendly. I could manage my programs much easier without
  2827.    having to remember so much. Other people could follow what I was doing
  2828.    easier.
  2829.  
  2830.    The important thing I learned was that readability is very important in
  2831.    a program. The more complex the program, the more important readability
  2832.    becomes.
  2833.  
  2834.    One of the main design factors in the MarxMenu language is readability.
  2835.    I could have used short names for my commands and it's not like I like
  2836.    to type. I'm still on just two fingers here. Its just that descriptive
  2837.    names are so much more meaningful when putting simple processes together
  2838.    to create complex processes.
  2839.  
  2840.    The point (finally) is, when creating variable names, or procedure
  2841.    names, use long meaningful names. It may take more typing, but it takes
  2842.    a lot less thinking and remembering later on. Consider the following
  2843.    example in choosing variable names.
  2844.  
  2845.     Var KlingonsDestroyedInBattle
  2846.     Var K
  2847.  
  2848.    In the above example, it is obvious which one tells you more about what
  2849.    information is stored in the variable.
  2850.  
  2851.    USE COMMENTS LIBERALLY
  2852.    USE COMMENTS LIBERALLY
  2853.    USE COMMENTS LIBERALLY
  2854.  
  2855.    Even though MarxMenu is easy to read, it still should be commented. The
  2856.    examples that come with this disk do not have as many comments as they
  2857.    should. Don't do as I do, do as I say. I'm lazy and a bad example.
  2858.  
  2859.    Comments are not compiled in your MRX files and cost you nothing at
  2860.    execution time. In order to make commenting easy, I have provided three
  2861.    separate comment commands. Learn these commands first.
  2862.  
  2863.    Every menu should include a title comment. This should include the name
  2864.    and phone number of the person who wrote it. If you have a problem with
  2865.    a menu and you send it to me, I expect a title comment. That way I can
  2866.    call you about it.
  2867.  
  2868.     Comment
  2869.     ====================================================================
  2870.  
  2871.  
  2872.  
  2873.    Computer Tyme MarxMenu Users Manual                     Page 41
  2874.    _______________________________________________________________
  2875.  
  2876.  
  2877.     This comment was created by Marc Perkel 1-417-866-1222
  2878.  
  2879.     Last Updated: 01-28-90
  2880.  
  2881.     This form of comment block is better than using ';' because not using ;
  2882.     allows you to turn your word wrap feature on and do some professional
  2883.     looking editing in the comment block. This kind of comment block should
  2884.     be at the beginning of each and every menu you create.
  2885.  
  2886.     The top and bottom bars are for looks only and are not necessary to the
  2887.     comment. I strongly encourage you to use bars and do things for looks
  2888.     in source code. Looks are very important and you should put as much
  2889.     care into your comments as you do in writing a business letter.
  2890.  
  2891.     If you learn MarxMenu well, your source code may be part of your next
  2892.     job interview as you move up the corporate ladder. So you want it to
  2893.     look good.
  2894.  
  2895.     By the way, if you upload your menus to my bulleten board, I expect a
  2896.     comment block at the top of your menu with your phone number so I can
  2897.     get back to you.
  2898.  
  2899.     ====================================================================
  2900.     EndComment
  2901.  
  2902.    INDENT YOUR CODE
  2903.    INDENT YOUR CODE
  2904.    INDENT YOUR CODE
  2905.  
  2906.    As programs get more complex, it gets harder to match the IFs with the
  2907.    ELSEs and the ENDIFs. This is where indenting comes in. It creates a
  2908.    logical grouping of statements and you can easily see what goes with
  2909.    what.
  2910.  
  2911.     Procedure IfDemo
  2912.        IF <condition>
  2913.           <statement>
  2914.           <statement>
  2915.        ELSE
  2916.           <statement>
  2917.           <statement>
  2918.           WHILE <condition>
  2919.              <statement>
  2920.              <statement>
  2921.           ENDWHILE
  2922.           <statement>
  2923.        ENDIF
  2924.        <statement>
  2925.     EndProc
  2926.  
  2927.  
  2928.  
  2929.    Computer Tyme MarxMenu Users Manual                     Page 42
  2930.    _______________________________________________________________
  2931.  
  2932.  
  2933.    You can easily see how this helps you follow what you are writing. Now
  2934.    here's a new trick. If you are using an IF, and plan to use an ELSE and
  2935.    an ENDIF, on the line under the IF statement, type in your ELSE and
  2936.    ENDIF lines. Then go back and insert your statements in between these
  2937.    lines. This will help you avoid forgetting the ENDIF or getting mixed up
  2938.    as to which IF matches which ELSE.
  2939.  
  2940.    A similar trick can be done with parens and brackets. When typing a left
  2941.    paren, type the matching right paren with it. Then fill in the code you
  2942.    want to put inside the parens or brackets.
  2943.  
  2944.    FOR DUPLICATE TASKS, USE PROCEDURES
  2945.    FOR DUPLICATE TASKS, USE PROCEDURES
  2946.    FOR DUPLICATE TASKS, USE PROCEDURES
  2947.  
  2948.    As menus become longer and more complex, many times you are duplicating
  2949.    a process that you already have written. Although it is easy to copy a
  2950.    block of code, it is better to create a procedure.
  2951.  
  2952.    With procedures, the process is put in one place and is given a name.
  2953.    Preferably a long meaningful name. Once this procedure is defined and
  2954.    named, it can be used as if it were part of the MarxMenu language. This
  2955.    makes menus smaller and easier to read. It is also a way for you to
  2956.    combine small processes into large processes. Procedures can be built
  2957.    using other procedures.
  2958.  
  2959.    Once you have a process figured out and working in a procedure, the
  2960.    whole process becomes a black box with a name that you can use
  2961.    elsewhere. The whole process is reduced down to a name that just works!
  2962.  
  2963.    Another advantage of procedures is that if circumstances change and the
  2964.    procedure needs to be modified, you only make a change one place in your
  2965.    menus, and everything that uses that procedure is automatically changed.
  2966.    This makes menu maintenance easier.
  2967.  
  2968.    DON'T PROGRAM YOURSELF INTO A CORNER
  2969.    DON'T PROGRAM YOURSELF INTO A CORNER
  2970.    DON'T PROGRAM YOURSELF INTO A CORNER
  2971.  
  2972.    Using the above techniques will allow you to write very complex menu
  2973.    systems. Failing to use these techniques can limit what you can
  2974.    accomplish. There is a term called "programming yourself into a corner"
  2975.    which refers to a program that is so poorly written, that it can't be
  2976.    modified to accommodate changes and improvements.
  2977.  
  2978.    The height of your programming abilities depends on the foundation on
  2979.    which they are built. You must avoid rushing to the top without first
  2980.    creating a firm foundation on which to build. Good technique is the
  2981.    foundation for good programming. You will have to learn it eventually,
  2982.    it is more efficient to do it right than it is to do it over.
  2983.  
  2984.    Adopting good programming habits reminds me of my favorite light bulb
  2985.    joke:
  2986.  
  2987.    Q. How many psychologists does it take to change a light bulb?
  2988.  
  2989.  
  2990.  
  2991.    Computer Tyme MarxMenu Users Manual                     Page 43
  2992.    _______________________________________________________________
  2993.  
  2994.  
  2995.    A. Only one, but the light bulb has to want to change.
  2996.  
  2997.    A WORD TO WRITERS AND REVIEWERS
  2998.    A WORD TO WRITERS AND REVIEWERS
  2999.    A WORD TO WRITERS AND REVIEWERS
  3000.  
  3001.    MarxMenu is a multi-level product fulfilling the needs of a large
  3002.    variety of computer users. It is difficult to compare this product on a
  3003.    feature to feature basis. This is because MarxMenu has about 10 times as
  3004.    many features as any other menu system. These features allow this
  3005.    product to target a very broad variety of computer users, from the
  3006.    novice user, who will only use the LEVEL1 menu, to large companies with
  3007.    hundreds of file servers controlled through the MarxMenu language.
  3008.  
  3009.    One common mistake that writers make when evaluating MarxMenu, is in the
  3010.    area of ease of use. If you are looking for ease of use, stick with the
  3011.    simple menus and the self-configuring menus such as the LEVEL1 example.
  3012.    By looking at it this way, MarxMenu will be as easy to use as any other
  3013.    menus system out there and can be compared for similar features. Even
  3014.    though MarxMenu supports complex commands, it is not necessary to use
  3015.    them in simple menus.
  3016.  
  3017.    If you are doing a comparative review, please let me know on what basis
  3018.    you are making comparisons. This way I can assist you by providing you
  3019.    accurate information in the area of your interest. If you are looking
  3020.    for simple, I can show you simple; if you are looking for power, I can
  3021.    show you power.
  3022.  
  3023.    On the other hand, if you are reviewing power tools and network
  3024.    utilities, you might want to look at the Network Survival Kit and not
  3025.    just MarxMenu. So if you have a copy of only this program, give me a
  3026.    call and I'll get you the latest and greatest.
  3027.  
  3028.    In addition to our software, we also have color prints and color slides
  3029.    available as well as product literature and sample reviews. These are
  3030.    available to make your job easier and help you make those deadlines.
  3031.  
  3032.    MarxMenu tends to be best reviewed as a long article rather than a short
  3033.    one. It is very good if you have a lot of space to fill. With a long
  3034.    article, you can get really in depth with what MarxMenu is able to do.
  3035.  
  3036.    Any publication which reviews any of my products gets a site license to
  3037.    that product whether I like the review or not. Our position is that if
  3038.    you are using MarxMenu yourself, you will get to know it better.
  3039.  
  3040.    So far, as of the date I write this, no writer has written an article
  3041.    about MarxMenu that I feel covered what this product is really capable
  3042.    of doing. Consider this a challenge.
  3043.  
  3044.    Any questions you have about any of my products, feel free to call. The
  3045.    main thing I ask is that you get the product name, price, our address,
  3046.    and our phone number right.
  3047.  
  3048.  
  3049.  
  3050.    Computer Tyme MarxMenu Users Manual                     Page 44
  3051.    _______________________________________________________________
  3052.  
  3053.  
  3054.    USING MARXHELP
  3055.    USING MARXHELP
  3056.    USING MARXHELP
  3057.  
  3058.    MarxHelp is a TSR pop-up help program for MarxMenu. It acts as an online
  3059.    reference guide to all of the MarxMenu commands. MarxHelp only takes 8k
  3060.    of ram and is very useful while writing your MarxMenu applications.
  3061.  
  3062.    To load MarxHelp type MARXHELP at the command line. Then if you want to
  3063.    pop-up an index press Shift-F3. The Shift-F2 key will repeat your last
  3064.    help topic and Shift-F1 will look up the word your cursor is on.
  3065.  
  3066.    To get more help on MarxMenu type MarxHelp /?. If you need to unload
  3067.    MarxHelp from memory, type MarxHelp /U.
  3068.  
  3069.    MarxHelp comes with the Computer Tyme Network Survival Kit. It can also
  3070.    be downloaded from our support BBS. It does not come bundled with the
  3071.    single user version.
  3072.  
  3073.    PRINTING THE EXAMPLE FILES
  3074.    PRINTING THE EXAMPLE FILES
  3075.    PRINTING THE EXAMPLE FILES
  3076.  
  3077.    MarxMenu comes with several example programs from simple to complex. The
  3078.    first thing to do is print the sample menus and study them. Start with
  3079.    the easy ones. You may never need to use any of the more complex ones,
  3080.    but if you do, a large variety of advanced techniques are demonstrated.
  3081.  
  3082.    By studying the sample menus, and comparing them to this manual, it
  3083.    should be fairly easy to become productive writing your own menus.
  3084.  
  3085.    SECURITY ISSUES
  3086.    SECURITY ISSUES
  3087.    SECURITY ISSUES
  3088.  
  3089.    Different users have different security need that range from none to
  3090.    extreme. If you are in the nine category, then you can skip this
  3091.    chapter. But if you need all the security you can get, then read on.
  3092.  
  3093.    First of all, DOS is not a secure operating system. There are various
  3094.    third party programs out there but what I'm going to cover here is how
  3095.    to make DOS secure as possible working with what you get with DOS.
  3096.  
  3097.    The first thing to do is add the command BREAK=OFF to your CONFIG.SYS
  3098.    file. This prevents programs from breaking out of batch files. Avoid
  3099.    using commands that are internal DOS commands like DIR from inside a
  3100.    menu or inside batch files. Use the D.EXE program instead.
  3101.  
  3102.    Use the LockWord option in the screen blanker so that if a menu is left
  3103.    unattended, it will not be accessable to just anyone walking up to a
  3104.    machine. The LockWord command requires the user type a password to
  3105.    release the screen blanker. If you are on a Novell network, you can use
  3106.    the UseNovPassword command. This forces the user to type their Novell
  3107.    password to unblank the screen.
  3108.  
  3109.  
  3110.  
  3111.    Computer Tyme MarxMenu Users Manual                     Page 45
  3112.    _______________________________________________________________
  3113.  
  3114.  
  3115.    If a menu choice access sensitive materials, then put a password on it.
  3116.    Also, make sure the SUPERVISOR user has a password. There are many times
  3117.    I've walked up to a server and logged in as supervisor and got right in.
  3118.    Make sure that intruder detection is set on. If you don't know what
  3119.    intruder detection is, read the Novell manuals.
  3120.  
  3121.    You can also use the LogoffTime command to log users off the network
  3122.    after a given amount of inactivity. This also helps kick people off so
  3123.    that you can upgrade MarxMenu from time to time. (MARXMENU.EXE can't be
  3124.    copied over on a network unless all users are out of the menu.)
  3125.  
  3126.    If you have applications that allow you to shell to DOS, you can prevent
  3127.    them from getting to DOS by changing your COMSPEC to point to something
  3128.    other than COMMAND.COM. You could also rename COMMAND.COM in case a
  3129.    program is looking for this file by name.
  3130.  
  3131.    Another defense is to lock the door to the computer room at night and
  3132.    teach employees security policies and make sure they use them.
  3133.  
  3134.    If you are on a network, buy diskless workstations. People can't copy
  3135.    files on or off a network that doesn't have a disk drive. It helps keep
  3136.    viruses off your server and lets the network administrators control what
  3137.    is and isn't on the network.
  3138.  
  3139.    MARXMENU COMMANDS
  3140.    MARXMENU COMMANDS
  3141.    MARXMENU COMMANDS
  3142.  
  3143.    MarxMenu contains a rich set of commands. They are listed here
  3144.    alphabetically and by command category. You don't have to learn them all
  3145.    so don't let the size of the list scare you.
  3146.  
  3147.    In the following command list, words contained within ( ) are command
  3148.    parameters that must be included after the menu command. If the
  3149.    parameter is not required, it will be contained in [ ]. The numeric
  3150.    range for the <column> parameter is 1 - 80 decimal, and for the <row>
  3151.    parameter the range is 1 - 25, 43, or 50 decimal depending on how many
  3152.    lines your monitor displays.
  3153.  
  3154.  
  3155.  
  3156.    Computer Tyme MarxMenu Users Manual                     Page 46
  3157.    _______________________________________________________________
  3158.  
  3159.  
  3160.    | (Vertical Bar)
  3161.    | (Vertical Bar)
  3162.    | (Vertical Bar)
  3163.    Forces MarxMenu interpretation under an OnKey Command. If not for the |
  3164.    (Vertical Bar), the command under an OnKey would be written to a batch
  3165.    file. The | is only used under OnKey commands.
  3166.  
  3167.     Example:
  3168.       OnKey 'S'
  3169.         |password 'hello' 3 4
  3170.         ECHO Type EXIT to return to menu
  3171.         COMMAND.COM
  3172.  
  3173.       OnKey 'X'
  3174.         |if UpperCase(ReadEnv('USERNAME')) = 'SUPERVISOR'
  3175.           SYSCON
  3176.         |else
  3177.         |  SecurityBreach('You do not have access to this function!')
  3178.         |endIf
  3179.  
  3180.    Category: Misc
  3181.  
  3182.    ( : Operator
  3183.    ( : Operator
  3184.    ( : Operator
  3185.    Starts logical interpreter grouping.
  3186.  
  3187.    Used to force evalution of an expression.
  3188.  
  3189.     Example:
  3190.       2 * 3 + 2     evaluates to  8
  3191.       2 * ( 3 + 2 ) evaluates to  10
  3192.  
  3193.    Category: Misc
  3194.  
  3195.    ) : Operator
  3196.    ) : Operator
  3197.    ) : Operator
  3198.    Ends logical interpreter grouping.
  3199.  
  3200.    See Also: (
  3201.  
  3202.    Category: Misc
  3203.  
  3204.    * : Operator
  3205.    * : Operator
  3206.    * : Operator
  3207.    Multiplies two numbers.
  3208.  
  3209.    Category: Math, Float
  3210.  
  3211.  
  3212.  
  3213.    Computer Tyme MarxMenu Users Manual                     Page 47
  3214.    _______________________________________________________________
  3215.  
  3216.  
  3217.    + : Operator
  3218.    + : Operator
  3219.    + : Operator
  3220.    Adds two numbers or two strings.
  3221.  
  3222.     Example:
  3223.       "Hello" + " " + "World" = "Hello World"
  3224.       2 + 2 = 4
  3225.  
  3226.    Category: Math, String, Float
  3227.  
  3228.    - : Operator
  3229.    - : Operator
  3230.    - : Operator
  3231.    Subtracts two numbers.
  3232.  
  3233.    Category: Math, Float
  3234.  
  3235.    / : Operator
  3236.    / : Operator
  3237.    / : Operator
  3238.    Divides two numbers.
  3239.  
  3240.    Category: Math, Float
  3241.  
  3242.    < : Operator
  3243.    < : Operator
  3244.    < : Operator
  3245.    Less Than - Compares two numbers or strings.
  3246.  
  3247.    Category: Math, String, Float
  3248.  
  3249.    <= : Operator
  3250.    <= : Operator
  3251.    <= : Operator
  3252.    Less Than or Equal - Compares two numbers or strings.
  3253.  
  3254.    Category: Math, String, Float
  3255.  
  3256.    <> : Operator
  3257.    <> : Operator
  3258.    <> : Operator
  3259.    Not Equal - Compares two numbers or strings.
  3260.  
  3261.    Category: Math, String, Float
  3262.  
  3263.    = : Operator
  3264.    = : Operator
  3265.    = : Operator
  3266.    Equal - Compares two numbers or strings.
  3267.  
  3268.    Category: Math, String, Float
  3269.  
  3270.    > : Operator
  3271.    > : Operator
  3272.    > : Operator
  3273.    Greater Than - Compares two numbers or strings.
  3274.  
  3275.    Category: Math, String, Float
  3276.  
  3277.    >= : Operator
  3278.    >= : Operator
  3279.    >= : Operator
  3280.    Greater Than or Equal - Compares two numbers or strings.
  3281.  
  3282.    Category: Math, String, Float
  3283.  
  3284.  
  3285.  
  3286.    Computer Tyme MarxMenu Users Manual                     Page 48
  3287.    _______________________________________________________________
  3288.  
  3289.  
  3290.    %MenuFileName : String
  3291.    %MenuFileName : String
  3292.    %MenuFileName : String
  3293.    This returns the name of the current menu file including the complete
  3294.    path. It can be used under an OnKey statement to edit the current menu
  3295.    as follows:
  3296.  
  3297.     Example:
  3298.       OnKey 'E'
  3299.         EDIT %MenuFileName
  3300.  
  3301.    Category: String
  3302.  
  3303.    Abs : Number
  3304.    Abs : Number
  3305.    Abs : Number
  3306.    Returns the absolute value of a number. The absolute value is the value
  3307.    of the number without the sign.
  3308.  
  3309.     Example:
  3310.        Abs(-6) returns 6
  3311.  
  3312.    Category: Math, Float
  3313.  
  3314.    Alias
  3315.    Alias
  3316.    Alias
  3317.    Alias <name> = <string>
  3318.    This is a compiler level text substitution command. When <name> is
  3319.    defined as <string> whenever you use <name> its the same to the compiler
  3320.    as if <string> were typed there.
  3321.  
  3322.     Example:
  3323.       Alias TwoPlusThree = "(2 + 3)"
  3324.       .
  3325.       .
  3326.       .
  3327.       2 * TwoPlusThree = 10
  3328.       .
  3329.       Writeln TwoPlusThree
  3330.  
  3331.    Writeln TwoPlusThree is the same as Writeln (2 + 3)
  3332.  
  3333.    Category: Misc
  3334.  
  3335.    And : Operator
  3336.    And : Operator
  3337.    And : Operator
  3338.    Returns logical And if operators are boolean; or bitwise And if
  3339.    operators are numeric.
  3340.  
  3341.    Category: Math, Boolean
  3342.  
  3343.  
  3344.  
  3345.    Computer Tyme MarxMenu Users Manual                     Page 49
  3346.    _______________________________________________________________
  3347.  
  3348.  
  3349.    ApplicationMemory : Number
  3350.    ApplicationMemory : Number
  3351.    ApplicationMemory : Number
  3352.    Returns the number of bytes of memory available to an application when
  3353.    MarxMenu exits out to the MARX.BAT file. This is the actual amount of
  3354.    ram available to your application.
  3355.  
  3356.    See Also: FreeMemory
  3357.  
  3358.    Category: Memory
  3359.  
  3360.    Apr : Number
  3361.    Apr : Number
  3362.    Apr : Number
  3363.    April, returns the number 4.
  3364.  
  3365.    Category: Time
  3366.  
  3367.    ArcTan (Radians) : Real
  3368.    ArcTan (Radians) : Real
  3369.    ArcTan (Radians) : Real
  3370.    Returns the ArcTangent of a real.
  3371.  
  3372.    Category: Math, Float
  3373.  
  3374.    Aug : Number
  3375.    Aug : Number
  3376.    Aug : Number
  3377.    August, returns the number 8.
  3378.  
  3379.    Category: Time
  3380.  
  3381.    BadDate : Boolean
  3382.    BadDate : Boolean
  3383.    BadDate : Boolean
  3384.    Set to true if you try to convert a string to a date and the date is
  3385.    invalid.
  3386.  
  3387.    See Also: TimeOf
  3388.  
  3389.    Category: Time
  3390.  
  3391.    Bat (string)
  3392.    Bat (string)
  3393.    Bat (string)
  3394.    Used to write a line to the batch file the same way OnKey does. All the
  3395.    same rules apply. The batch file is created when the menu exits.
  3396.    MarxMenu exits with ErrorLevel 0 unless some other value has been
  3397.    specified using the ExitCode command.
  3398.  
  3399.     Example:
  3400.       OnKey 'D'
  3401.         |BAT "command /c dir a:"
  3402.         |ExitMenu
  3403.  
  3404.    See Also: OnKey
  3405.  
  3406.    Category: Execution
  3407.  
  3408.  
  3409.  
  3410.    Computer Tyme MarxMenu Users Manual                     Page 50
  3411.    _______________________________________________________________
  3412.  
  3413.  
  3414.    BatFileName : String
  3415.    BatFileName : String
  3416.    BatFileName : String
  3417.    Returns the name of the batch file that MarxMenu would create if
  3418.    MarxMenu were to create a batch file automatically.
  3419.  
  3420.    Category: String
  3421.  
  3422.    BigShadow
  3423.    BigShadow
  3424.    BigShadow
  3425.    Selects big shadow type. This is the default shadow.
  3426.  
  3427.    See Also: SmallShadow, ShadowPosition, ShadowColor
  3428.  
  3429.    Category: Display
  3430.  
  3431.    Black : Number
  3432.    Black : Number
  3433.    Black : Number
  3434.    Returns the number 0.
  3435.  
  3436.    Category: Color
  3437.  
  3438.    Blanked : Boolean
  3439.    Blanked : Boolean
  3440.    Blanked : Boolean
  3441.    Returns true if the screen blanker has kicked it. This lets you alter
  3442.    your idel program based on if the screen blanker is active.
  3443.  
  3444.    Category: Display
  3445.  
  3446.    BlankMessage (string)
  3447.    BlankMessage (string)
  3448.    BlankMessage (string)
  3449.    When the screen blanks out, this one line message is displayed. If
  3450.    BlankMessage is not set, the date and time will be displayed.
  3451.  
  3452.    See Also: ConsolePos
  3453.  
  3454.    Category: String
  3455.  
  3456.    BlankTime (minutes)
  3457.    BlankTime (minutes)
  3458.    BlankTime (minutes)
  3459.    Sets the number of minutes before the screen blanks out to prevent
  3460.    screen burn. Since this is not a resident program, screen blanking is
  3461.    only active while the menu system is active. Setting BlankTime to 0
  3462.    prevents screen blanking.
  3463.  
  3464.     Example:
  3465.       Set ConsolePos
  3466.  
  3467.    Category: Display
  3468.  
  3469.  
  3470.  
  3471.    Computer Tyme MarxMenu Users Manual                     Page 51
  3472.    _______________________________________________________________
  3473.  
  3474.  
  3475.    Blink : Boolean
  3476.    Blink : Boolean
  3477.    Blink : Boolean
  3478.    Blink is a boolean variable that when set to true allows you to specify
  3479.    colors that will blink. To make a color that blinks, set the background
  3480.    color to a bright color. A bright color is a color from 8 to 15.
  3481.  
  3482.    Normally, when Blink is off, MarxMenu strips the high bit of the colors.
  3483.    When Blink is on, high bit stripping is disabled.
  3484.  
  3485.     Example:
  3486.        Blink
  3487.        TextColor Green LRed
  3488.  
  3489.    Because the background color is light red, the text will blink.
  3490.  
  3491.    Warning: Blinking characters can cause headaches and eye strain. I
  3492.    resisted adding this feature for a long time because I personally hate
  3493.    excessive blinking characters on the screen. I now recognize that
  3494.    blinking can be very effective when used correctly. Please use blinking
  3495.    sparingly.
  3496.  
  3497.    Category: Color
  3498.  
  3499.    BlockBox
  3500.    BlockBox
  3501.    BlockBox
  3502.    Selects block type box for menu borders.
  3503.  
  3504.    See Also: SingleLineBox, DoubleLineBox, CustomBox, NoBoxBorder
  3505.  
  3506.    Category: Display
  3507.  
  3508.    Blue : Number
  3509.    Blue : Number
  3510.    Blue : Number
  3511.    Returns the number 1.
  3512.  
  3513.    Category: Color
  3514.  
  3515.    BoxBorderColor (forecolor,backcolor)
  3516.    BoxBorderColor (forecolor,backcolor)
  3517.    BoxBorderColor (forecolor,backcolor)
  3518.    Sets colors for box border.
  3519.  
  3520.    Category: Color
  3521.  
  3522.  
  3523.  
  3524.    Computer Tyme MarxMenu Users Manual                     Page 52
  3525.    _______________________________________________________________
  3526.  
  3527.  
  3528.    BoxHeader (string)
  3529.    BoxHeader (string)
  3530.    BoxHeader (string)
  3531.    Sets the center header message for the next box displayed. This command
  3532.    is used before the DrawBox command.
  3533.  
  3534.     Example:
  3535.        BoxHeader ' Main Choices '
  3536.        DrawBox (25,6,30,9)
  3537.  
  3538.    See Also: BoxHeaderLeft, BoxHeaderRight
  3539.    See Also: BoxFooter, BoxFooterLeft, BoxFooterRight
  3540.  
  3541.    Category: Display
  3542.  
  3543.    BoxHeaderColor (forecolor,backcolor)
  3544.    BoxHeaderColor (forecolor,backcolor)
  3545.    BoxHeaderColor (forecolor,backcolor)
  3546.    Sets colors for the box headers and box footers.
  3547.  
  3548.    Category: Color
  3549.  
  3550.    BoxHeaderLeft (string)
  3551.    BoxHeaderLeft (string)
  3552.    BoxHeaderLeft (string)
  3553.    Sets the left header message for the next box displayed. This command is
  3554.    used before the DrawBox command.
  3555.  
  3556.     Example:
  3557.        BoxHeaderLeft ' Main Choices '
  3558.        DrawBox (25,6,30,9)
  3559.  
  3560.    See Also: BoxHeader, BoxHeaderRight
  3561.    See Also: BoxFooter, BoxFooterLeft, BoxFooterRight
  3562.  
  3563.    Category: Display
  3564.  
  3565.    BoxHeaderRight (string)
  3566.    BoxHeaderRight (string)
  3567.    BoxHeaderRight (string)
  3568.    Sets the right header message for the next box displayed. This command
  3569.    is used before the DrawBox command.
  3570.  
  3571.     Example:
  3572.        BoxHeaderRight ' Main Choices '
  3573.        DrawBox (25,6,30,9)
  3574.  
  3575.    See Also: BoxHeader, BoxHeaderLeft
  3576.    See Also: BoxFooter, BoxFooterLeft, BoxFooterRight
  3577.  
  3578.    Category: Display
  3579.  
  3580.  
  3581.  
  3582.    Computer Tyme MarxMenu Users Manual                     Page 53
  3583.    _______________________________________________________________
  3584.  
  3585.  
  3586.    BoxFooter (string)
  3587.    BoxFooter (string)
  3588.    BoxFooter (string)
  3589.    Sets the center footer message for the next box displayed. This command
  3590.    is used before the DrawBox command.
  3591.  
  3592.     Example:
  3593.        BoxFooter ' Main Choices '
  3594.        DrawBox (25,6,30,9)
  3595.  
  3596.    See Also: BoxHeader, BoxHeaderLeft, BoxHeaderRight
  3597.    See Also: BoxFooterLeft, BoxFooterRight
  3598.  
  3599.    Category: Display
  3600.  
  3601.    BoxFooterLeft (string)
  3602.    BoxFooterLeft (string)
  3603.    BoxFooterLeft (string)
  3604.    Sets the left footer message for the next box displayed. This command is
  3605.    used before the DrawBox command.
  3606.  
  3607.     Example:
  3608.        BoxFooterLeft ' Main Choices '
  3609.        DrawBox (25,6,30,9)
  3610.  
  3611.    See Also: BoxHeader, BoxHeaderLeft, BoxHeaderRight
  3612.    See Also: BoxFooter, BoxFooterRight
  3613.  
  3614.    Category: Display
  3615.  
  3616.    BoxFooterRight (string)
  3617.    BoxFooterRight (string)
  3618.    BoxFooterRight (string)
  3619.    Sets the right footer message for the next box displayed. This command
  3620.    is used before the DrawBox command.
  3621.  
  3622.     Example:
  3623.        BoxFooterRight ' Main Choices '
  3624.        DrawBox (25,6,30,9)
  3625.  
  3626.    See Also: BoxHeader, BoxHeaderLeft, BoxHeaderRight
  3627.    See Also: BoxFooter, BoxFooterLeft
  3628.  
  3629.    Category: Display
  3630.  
  3631.    BoxInsideColor (forecolor,backcolor)
  3632.    BoxInsideColor (forecolor,backcolor)
  3633.    BoxInsideColor (forecolor,backcolor)
  3634.    Sets colors for box interior.
  3635.  
  3636.    Category: Color
  3637.  
  3638.    Brown : Number
  3639.    Brown : Number
  3640.    Brown : Number
  3641.    Returns the number 7.
  3642.  
  3643.    Category: Color
  3644.  
  3645.  
  3646.  
  3647.    Computer Tyme MarxMenu Users Manual                     Page 54
  3648.    _______________________________________________________________
  3649.  
  3650.  
  3651.    BW40 : Number
  3652.    BW40 : Number
  3653.    BW40 : Number
  3654.    Returns the number 0. Relates to the DOS Mode BW40 command.
  3655.  
  3656.    Category: Video
  3657.  
  3658.    BW80 : Number
  3659.    BW80 : Number
  3660.    BW80 : Number
  3661.    Returns the number 2. Relates to the DOS Mode BW80 command.
  3662.  
  3663.    Category: Video
  3664.  
  3665.    CapsColor (forecolor,backcolor)
  3666.    CapsColor (forecolor,backcolor)
  3667.    CapsColor (forecolor,backcolor)
  3668.    Setting CapsColor allows capital letters and numbers to be a different
  3669.    color than the rest of the text. This is used with the UseArrows command
  3670.    to show which character is the one that selects the options in the
  3671.    window. CapsColor is reset after any TextColor command, so be sure to
  3672.    use CapsColor AFTER TextColor commands.
  3673.  
  3674.    For this option the numbers 0 - 9 and some punctuation characters are
  3675.    considered capitals.
  3676.  
  3677.    See Also: DrawBox
  3678.  
  3679.    Category: Color
  3680.  
  3681.    CapsLock : Boolean
  3682.    CapsLock : Boolean
  3683.    CapsLock : Boolean
  3684.    Returns true if Caps Lock is on. This command can also set the Caps Lock
  3685.    on and off.
  3686.  
  3687.     Example:
  3688.       if CapsLock then Write 'CapsLock is On'
  3689.  
  3690.       CapsLock On  ;Turns CapsLock On
  3691.       CapsLock Off ;Turns CapsLock Off
  3692.  
  3693.       CapsLock (by itself) turns CapsLock On.
  3694.  
  3695.    See Also: ScrollLock, NumLock
  3696.  
  3697.    Category: System
  3698.  
  3699.    Chain (MenuName)
  3700.    Chain (MenuName)
  3701.    Chain (MenuName)
  3702.    This command will load a new menu. Unlike Jump, MarxMenu stays in
  3703.    memory. The screen is not cleared. If the new menu has exactly the same
  3704.    global variables, the contents of all global variables is retained.
  3705.    Chain allows for a very quick transfer from one menu to another.
  3706.  
  3707.     Example:
  3708.       Chain ('USER')  ;Chains to USER.MNU
  3709.  
  3710.    Category: Execution
  3711.  
  3712.  
  3713.  
  3714.    Computer Tyme MarxMenu Users Manual                     Page 55
  3715.    _______________________________________________________________
  3716.  
  3717.  
  3718.    Char (number) : String
  3719.    Char (number) : String
  3720.    Char (number) : String
  3721.    Converts a number into a one character string.
  3722.  
  3723.     Example:
  3724.       Write (Char(65)) ;This will display 'A'
  3725.  
  3726.    Category: String
  3727.  
  3728.    ChDir (string)
  3729.    ChDir (string)
  3730.    ChDir (string)
  3731.    Changes directories. The variable FileResult can be tested to see if it
  3732.    was successful. ChDir can also be used to change drives.
  3733.  
  3734.     Example:
  3735.       ChDir( 'C:\HOME\MARXMENU' )
  3736.       ChDir( 'B:' )                ; Will make drive B: the current drive
  3737.  
  3738.    Category: File
  3739.  
  3740.    CleanFileName (string) : String
  3741.    CleanFileName (string) : String
  3742.    CleanFileName (string) : String
  3743.    Returns the full path name or directory name of a string. It also
  3744.    removes occurrences of a '\\' in the string. Thus the command: String =
  3745.    CleanFileName('a:\' + '\main.mnu') sets String to 'A:\MAIN.MNU'.
  3746.    CleanFileName also removes extra ending '\' and capitalizes the path.
  3747.  
  3748.    Category: String
  3749.  
  3750.    ClearLine [char]
  3751.    ClearLine [char]
  3752.    ClearLine [char]
  3753.    Clears the current line in the current window. The optional parameter is
  3754.    for the decimal number of the IBM graphics character. If [char] is
  3755.    present, the line will be filled with the character.
  3756.  
  3757.     Examples:
  3758.        ClearLine       ;Clears screen with blanks
  3759.        ClearLine 205   ;Clears screen with char 205
  3760.  
  3761.    Category: Display
  3762.  
  3763.    ClearScreen [char]
  3764.    ClearScreen [char]
  3765.    ClearScreen [char]
  3766.    Clears the screen. The optional parameter is the decimal number
  3767.    equivalent for an IBM graphics character. If [char] is present, the
  3768.    screen will be filled with [char].
  3769.  
  3770.     Examples:
  3771.        ClearScreen       ;Clears screen with blanks
  3772.        ClearScreen 177   ;Clears screen with char 177
  3773.  
  3774.    Category: Display
  3775.  
  3776.  
  3777.  
  3778.    Computer Tyme MarxMenu Users Manual                     Page 56
  3779.    _______________________________________________________________
  3780.  
  3781.  
  3782.    ClearScreenFirst (on/off)
  3783.    ClearScreenFirst (on/off)
  3784.    ClearScreenFirst (on/off)
  3785.    Used in conjunction with Execute. If on, will clear the screen before
  3786.    running the program.
  3787.  
  3788.     Example:
  3789.       OnKey 'D'
  3790.         |ClearScreenFirst On
  3791.         |Execute 'C:\DM.COM'
  3792.  
  3793.    The default is ON.
  3794.  
  3795.    Category: Execution
  3796.  
  3797.    ClearScreenOnExit (on/off)
  3798.    ClearScreenOnExit (on/off)
  3799.    ClearScreenOnExit (on/off)
  3800.    Controls whether or not the screen is cleared on menu exit. Default on.
  3801.  
  3802.    Category: Display
  3803.  
  3804.    ClockColor (forecolor,backcolor)
  3805.    ClockColor (forecolor,backcolor)
  3806.    ClockColor (forecolor,backcolor)
  3807.    Sets colors for the on screen clock.
  3808.  
  3809.    Category: Color
  3810.  
  3811.    ClockMode
  3812.    ClockMode
  3813.    ClockMode
  3814.    ClockMode is a variable whose bits control the format of the on screen
  3815.    clock when it is used.
  3816.  
  3817.     ClockMode Bits:
  3818.     ---------------
  3819.     0 24 hour mode
  3820.     1 AmPm On
  3821.     2 Show Seconds
  3822.     3 UpperCase
  3823.     4 3 char month
  3824.     5 3 char Day of Week
  3825.     6 Show Day of Week
  3826.     7 Dash = 0 Slash = 1 MM-DD-YY or MM/DD/YY
  3827.     8 Long Date
  3828.  
  3829.     Bit 0 on sets hours display to 24 hour mode.
  3830.     Bit 1 turns on the Am/Pm display.
  3831.     Bit 2 on controls if time is shown as HH:MM:SS or just HH:MM.
  3832.     Bit 3 shows date in only upper case.
  3833.     Bit 4 on shows month in 3 characters.
  3834.     Bit 5 shows Day of week as 3 characters.
  3835.     Bit 6 controls if Day of week is displayed.
  3836.     Bit 7 controls if date is shown as MM-DD-YY or MM/DD/YY.
  3837.     Bit 8 shows date in text. (October 3, 1990).
  3838.  
  3839.    The default ClockMode is 326.
  3840.  
  3841.  
  3842.  
  3843.    Computer Tyme MarxMenu Users Manual                     Page 57
  3844.    _______________________________________________________________
  3845.  
  3846.  
  3847.    Category: Display
  3848.  
  3849.    ClockPos (column,row)
  3850.    ClockPos (column,row)
  3851.    ClockPos (column,row)
  3852.    Puts a clock on the screen at location (column,row). The command
  3853.    ClockPos 0 0 turns the clock off.
  3854.  
  3855.    Category: Display
  3856.  
  3857.    ClosePrinter
  3858.    ClosePrinter
  3859.    ClosePrinter
  3860.    In MarxMenu the printer is just another text file. Closing the printer
  3861.    is not required for ordinary printing. If you are changing printers you
  3862.    need to run ClosePrinter before changing the printer name. The printer
  3863.    is automatically opened by MarxMenu any time you print anything.
  3864.  
  3865.    If you are running Windows or DesqView, closing the printer allows other
  3866.    programs to access the printer. So if you are running under any
  3867.    multitasking shell, be sure to close the printer when you are done with
  3868.    it.
  3869.  
  3870.    If you are using a network like Novell, ClosePrinter will end the print
  3871.    job and send it to the print queue. This avoids the need to wait for
  3872.    print capture timouts to take effect.
  3873.  
  3874.    Closing the printer is good programming practice and will help you stay
  3875.    out of trouble. It's like what your mother taught you. "When you're done
  3876.    with something, put it away."
  3877.  
  3878.    See Also: OpenPrinter, PrinterName
  3879.  
  3880.    Category: Printer
  3881.  
  3882.    ClusterSize <drive> : Number
  3883.    ClusterSize <drive> : Number
  3884.    ClusterSize <drive> : Number
  3885.    Returns cluster size in bytes.
  3886.  
  3887.     Example:
  3888.        Writeln (ClusterSize 'C')
  3889.  
  3890.    ClusterSize only looks at the first character of the string for the
  3891.    drive letter.
  3892.  
  3893.    Category: System
  3894.  
  3895.    CmdLine : String
  3896.    CmdLine : String
  3897.    CmdLine : String
  3898.    System string variable that returns the rest of the command line after
  3899.    the menu name.
  3900.  
  3901.    Category: String
  3902.  
  3903.  
  3904.  
  3905.    Computer Tyme MarxMenu Users Manual                     Page 58
  3906.    _______________________________________________________________
  3907.  
  3908.  
  3909.    CO40 : Number
  3910.    CO40 : Number
  3911.    CO40 : Number
  3912.    Returns the number 1. Relates to the DOS Mode CO40 command.
  3913.  
  3914.    Category: Video
  3915.  
  3916.    CO80 : Number
  3917.    CO80 : Number
  3918.    CO80 : Number
  3919.    Returns the number 3. Relates to the DOS Mode CO80 command.
  3920.  
  3921.    Category: Video
  3922.  
  3923.    ColorScreen : Boolean
  3924.    ColorScreen : Boolean
  3925.    ColorScreen : Boolean
  3926.    Returns true if screen is a color screen. Note: Running MODE BW80 will
  3927.    cause ColorScreen to return false.
  3928.  
  3929.     Example:
  3930.       If ColorScreen
  3931.           ;Color
  3932.         TextColor( White, Blue )
  3933.       Else
  3934.           ;Monochrome
  3935.         TextColor( White, Black )
  3936.       EndIf
  3937.  
  3938.    Category: Video
  3939.  
  3940.    Comment
  3941.    Comment
  3942.    Comment
  3943.    Starts a Comment Block. All text is ignored until EndComment is
  3944.    encountered.
  3945.  
  3946.     Example:
  3947.       Comment
  3948.       =======================================
  3949.  
  3950.       Everything between Comment and EndComment is ignored.
  3951.  
  3952.       =======================================
  3953.       EndComment
  3954.  
  3955.    See Also: EndComment
  3956.  
  3957.    Category: Misc
  3958.  
  3959.    Console (On/Off)
  3960.    Console (On/Off)
  3961.    Console (On/Off)
  3962.    The command Console Off will disable access to the console.
  3963.  
  3964.    Category: Display
  3965.  
  3966.  
  3967.  
  3968.    Computer Tyme MarxMenu Users Manual                     Page 59
  3969.    _______________________________________________________________
  3970.  
  3971.  
  3972.    ConsoleBorderColor (Color,Color)
  3973.    ConsoleBorderColor (Color,Color)
  3974.    ConsoleBorderColor (Color,Color)
  3975.    Sets the color of the console border.
  3976.  
  3977.     Example:
  3978.       See Also: ConsolePos
  3979.  
  3980.    Category: Color
  3981.  
  3982.    ConsoleHeaderColor (Color,Color)
  3983.    ConsoleHeaderColor (Color,Color)
  3984.    ConsoleHeaderColor (Color,Color)
  3985.    Sets the color of the console header.
  3986.  
  3987.    See Also: ConsolePos
  3988.  
  3989.    Category: Color
  3990.  
  3991.    ConsoleInsideColor (Color,Color)
  3992.    ConsoleInsideColor (Color,Color)
  3993.    ConsoleInsideColor (Color,Color)
  3994.    Sets the color of the console inside.
  3995.  
  3996.    See Also: ConsolePos
  3997.  
  3998.    Category: Color
  3999.  
  4000.    ConsolePos (column,row)
  4001.    ConsolePos (column,row)
  4002.    ConsolePos (column,row)
  4003.    Sets the coordinates of the pop-up console menu.
  4004.  
  4005.     Example:
  4006.       ConsoleBorderColor( White,Blue )
  4007.       ConsoleHeaderColor( Yellow,Blue )
  4008.       ConsoleInsideColor( Yellow,Blue )
  4009.       ConsolePos( 5,5 ) ; Column 5, Row 5
  4010.  
  4011.    Category: Display
  4012.  
  4013.    Const
  4014.    Const
  4015.    Const
  4016.    Creates a constant.
  4017.  
  4018.    See Also: Var, Shared, Qualifier
  4019.  
  4020.    Category Variable
  4021.  
  4022.    Cos (Radians) : Real
  4023.    Cos (Radians) : Real
  4024.    Cos (Radians) : Real
  4025.    Returns the CoSine of a real.
  4026.  
  4027.    Category: Math, Float
  4028.  
  4029.  
  4030.  
  4031.    Computer Tyme MarxMenu Users Manual                     Page 60
  4032.    _______________________________________________________________
  4033.  
  4034.  
  4035.    CurrentEnvironment
  4036.    CurrentEnvironment
  4037.    CurrentEnvironment
  4038.    CurrentEnvironment selects the current environment for use with
  4039.    environment access commands.
  4040.  
  4041.    See Also: ReadEnv SetEnv ReadEnvironment ShellEnvironment
  4042.    See Also: ParentEnvironment MasterEnvironment
  4043.  
  4044.    Category: Environment
  4045.  
  4046.    CurrentWindow : Number
  4047.    CurrentWindow : Number
  4048.    CurrentWindow : Number
  4049.    Returns the number of the current window. All windows are given a unique
  4050.    number.
  4051.  
  4052.    See Also: SetTopWindow
  4053.  
  4054.    Category: Display
  4055.  
  4056.    Cursor (On/Off)
  4057.    Cursor (On/Off)
  4058.    Cursor (On/Off)
  4059.    MarxMenu automatically turns the cursor on for certain kinds of input.
  4060.    Using Cursor Off prevents MarxMenu from turning the cursor on. Cursor On
  4061.    reverses this and allows MarxMenu to turn the cursor on when needed.
  4062.  
  4063.    Category: Display
  4064.  
  4065.    CustomBox (String)
  4066.    CustomBox (String)
  4067.    CustomBox (String)
  4068.    Selects a Box border using an 8 character string to define the sides and
  4069.    the corners.
  4070.  
  4071.     Example:
  4072.       CustomBox ('12345678') ;This will help you figure out what
  4073.                              ;position matches which side.
  4074.  
  4075.    See Also: SingleLineBox, DoubleLineBox, BlockBox, NoBoxBorder
  4076.  
  4077.    Category: Display
  4078.  
  4079.    Cyan : Number
  4080.    Cyan : Number
  4081.    Cyan : Number
  4082.    Returns the number 3.
  4083.  
  4084.    Category: Color
  4085.  
  4086.    DateString : String
  4087.    DateString : String
  4088.    DateString : String
  4089.    Returns the current date in MM-DD-YY format.
  4090.  
  4091.    Category: Time, String
  4092.  
  4093.    Day : Number
  4094.    Day : Number
  4095.    Day : Number
  4096.    Returns the day of the month.
  4097.  
  4098.    Category: Time
  4099.  
  4100.  
  4101.  
  4102.    Computer Tyme MarxMenu Users Manual                     Page 61
  4103.    _______________________________________________________________
  4104.  
  4105.  
  4106.    DayOf (Date) : Number
  4107.    DayOf (Date) : Number
  4108.    DayOf (Date) : Number
  4109.    Returns the day of a date. If Date is passed as a string it is
  4110.    converted automatically.
  4111.  
  4112.    See Also: TimeOf, BadDate
  4113.  
  4114.    Category: Time
  4115.  
  4116.    DayOfWeek : Number
  4117.    DayOfWeek : Number
  4118.    DayOfWeek : Number
  4119.    Returns the day of the week.
  4120.  
  4121.      0=SUNDAY
  4122.      1=MONDAY
  4123.      2=TUESDAY
  4124.      3=WEDNESDAY
  4125.      4=THURSDAY
  4126.      5=FRIDAY
  4127.      6=SATURDAY
  4128.  
  4129.    Category: Time
  4130.  
  4131.    DayOfWeekOf (Date) : Number
  4132.    DayOfWeekOf (Date) : Number
  4133.    DayOfWeekOf (Date) : Number
  4134.    Returns the DayOfWeek of a date. If Date is passed as a string it is
  4135.    converted automatically.
  4136.  
  4137.    See Also: TimeOf, BadDate
  4138.  
  4139.    Category: Time
  4140.  
  4141.    Dec : Number
  4142.    Dec : Number
  4143.    Dec : Number
  4144.    December, Returns the number 12.
  4145.  
  4146.    Category: Time
  4147.  
  4148.  
  4149.  
  4150.    Computer Tyme MarxMenu Users Manual                     Page 62
  4151.    _______________________________________________________________
  4152.  
  4153.  
  4154.    Delete (string,pos,count)
  4155.    Delete (string,pos,count)
  4156.    Delete (string,pos,count)
  4157.    Deletes characters from string starting at pos for count.
  4158.  
  4159.     Example:
  4160.       String = 'ABCDEFGH'
  4161.       Delete(String,2,3)
  4162.  
  4163.    This leaves a String containing 'ABFGH'
  4164.  
  4165.    If count exceeds the length of the string, the string is truncated at
  4166.    pos.
  4167.  
  4168.    Another use of Delete is to delete elements of an array.
  4169.  
  4170.    Delete (Array,Position,Count)
  4171.    This works exactly like the delete command for strings. It delete
  4172.    elements of an array beginning at Position for Count elements. The
  4173.    NumberOfElements is adjusted accordingly.
  4174.  
  4175.     Example:
  4176.       MyArray[1] = "ONE"
  4177.       MyArray[2] = "TWO"
  4178.       MyArray[3] = "THREE"
  4179.       MyArray[4] = "FOUR"
  4180.       Delete( MyArray,2,2 )
  4181.  
  4182.     ;MyArray now contains..
  4183.       MyArray[1] = "ONE"
  4184.       MyArray[2] = "FOUR"
  4185.  
  4186.    Category: String, Array
  4187.  
  4188.    DelFile (Name)
  4189.    DelFile (Name)
  4190.    DelFile (Name)
  4191.    Deletes a file by name. FileResult returns a 0 if the file existed and
  4192.    the delete was successful.
  4193.  
  4194.     Example:
  4195.       DelFile( 'C:\NOTES\READ.ME' )
  4196.       If FileResult = 0
  4197.         Writeln( 'C:\NOTES\READ.ME was succesfully deleted!' )
  4198.       Else
  4199.         Writeln( 'C:\NOTES\READ.ME was un-succesfully deleted!' )
  4200.       EndIf
  4201.  
  4202.    Category: File
  4203.  
  4204.  
  4205.  
  4206.    Computer Tyme MarxMenu Users Manual                     Page 63
  4207.    _______________________________________________________________
  4208.  
  4209.  
  4210.    Dispose (Variable)
  4211.    Dispose (Variable)
  4212.    Dispose (Variable)
  4213.    This command reclaims memory used by a string variable, file variable,
  4214.    or an array. If you are doing a lot of data manipulation, you might want
  4215.    to reclaim memory space used by arrays you are done with. The disposed
  4216.    variable becomes an untyped variable.
  4217.  
  4218.     Example:
  4219.       Loop( 20 )
  4220.         MyArray[LoopIndex] = LoopIndex
  4221.  
  4222.         ;Check to See Also: if number is odd or even
  4223.         If (MyArray[LoopIndex] Mod 2) = 0
  4224.           Writeln('MyArray[' + Str(LoopIndex) + '] is an EVEN number.' );
  4225.         Else
  4226.           Writeln('MyArray[' + Str(LoopIndex) + '] is an EVEN number.' );
  4227.         EndIf
  4228.       EndLoop
  4229.  
  4230.       ;We're finished with the array so reclaim its memory space.
  4231.       Dispose(MyArray)
  4232.  
  4233.    Category: Memory, Array
  4234.  
  4235.    DosVersion : Number
  4236.    DosVersion : Number
  4237.    DosVersion : Number
  4238.    Returns the major DOS version number.
  4239.  
  4240.    See Also: DosVersionString, MinorDosVersion
  4241.  
  4242.    Category: System
  4243.  
  4244.    DosVersionString : String
  4245.    DosVersionString : String
  4246.    DosVersionString : String
  4247.    Returns the DOS version number as a 4 character string. This function
  4248.    always returns 2 places past the decimal point. The form of the string
  4249.    is: #.##
  4250.  
  4251.     Example
  4252.        Writeln DosVersionString   ;prints 4.01
  4253.  
  4254.    See Also: DosVersion, MinorDosVersion
  4255.  
  4256.    Category: System, String
  4257.  
  4258.    DosWindow (on/off)
  4259.    DosWindow (on/off)
  4260.    DosWindow (on/off)
  4261.    When you set DosWindow on, MarxMenu will not drop out of the menu system
  4262.    when you use the Execute command. It will give you a display of the DOS
  4263.    screen within the current window. The program you execute must be a
  4264.    well-behaved program like DIR or COPY or some of the other DOS commands
  4265.    that talk to the screen through standard file handles.
  4266.  
  4267.    Category: Execution
  4268.  
  4269.  
  4270.  
  4271.    Computer Tyme MarxMenu Users Manual                     Page 64
  4272.    _______________________________________________________________
  4273.  
  4274.  
  4275.    DoubleLineBox
  4276.    DoubleLineBox
  4277.    DoubleLineBox
  4278.    Selects double line box.
  4279.  
  4280.    See Also: SingleLineBox, BlockBox, CustomBox, NoBoxBorder
  4281.  
  4282.    Category: Display
  4283.  
  4284.    DrawBox (column,row,width,height)
  4285.    DrawBox (column,row,width,height)
  4286.    DrawBox (column,row,width,height)
  4287.    Draws a box on the screen. The (column) and (row) are the upper left
  4288.    corner, (width) and (height) is the box size.
  4289.  
  4290.     Example:
  4291.       Explode On
  4292.       Shadow On
  4293.       DoubleLineBox
  4294.       BoxHeaderColor( Yellow,Red )
  4295.       BoxBorderColor( White, Red )
  4296.       BoxInsideColor( Yellow,Red )
  4297.       InverseColor( Black, Gray )
  4298.       CapsColor( Black, Red )
  4299.       BoxHeader = ' << Main Menu >> '
  4300.       DrawBox( 30,10,40,8 )
  4301.  
  4302.    DrawBox also creates a logical layer for several display variables.
  4303.    These variable include TextColor, InverseColor, CapsColor. It is
  4304.    important to use these color control commands AFTER the DrawBox command
  4305.    in order to properly restore the colors of the previous DrawBox.
  4306.  
  4307.    If you call up a box and when it finishes it messes up the colors of the
  4308.    previous box, you probably used color control commands BEFORE the
  4309.    DrawBox instead of AFTER.
  4310.  
  4311.    Category: Display
  4312.  
  4313.    Drives : Number
  4314.    Drives : Number
  4315.    Drives : Number
  4316.    Returns the number of drives. This includes drive names that can be
  4317.    substituted. Most of the time the answer is 5. This relates to your
  4318.    LastDrive = command in your CONFIG.SYS file.
  4319.  
  4320.    Category: System
  4321.  
  4322.    DvAppNumber : Number
  4323.    DvAppNumber : Number
  4324.    DvAppNumber : Number
  4325.    Returns the DesqView application number or window number.
  4326.  
  4327.    Category: DesqView
  4328.  
  4329.    DvFrame (Handle,On/Off)
  4330.    DvFrame (Handle,On/Off)
  4331.    DvFrame (Handle,On/Off)
  4332.    Turns the DesqView border frame on or off.
  4333.  
  4334.    Category: DesqView
  4335.  
  4336.  
  4337.  
  4338.    Computer Tyme MarxMenu Users Manual                     Page 65
  4339.    _______________________________________________________________
  4340.  
  4341.  
  4342.    DvFreeze (Handle)
  4343.    DvFreeze (Handle)
  4344.    DvFreeze (Handle)
  4345.    Freezes a program. The program stops executing.
  4346.  
  4347.    See Also: DvUnFreeze, DvPifExecute, DvLastHandle
  4348.  
  4349.    Category: DesqView
  4350.  
  4351.    DvHide (Handle)
  4352.    DvHide (Handle)
  4353.    DvHide (Handle)
  4354.    Hides all output from program making it invisible. The program still
  4355.    continues to run.
  4356.  
  4357.    See Also: DvUnHide
  4358.  
  4359.    Category: DesqView
  4360.  
  4361.    DvKillTask (Handle)
  4362.    DvKillTask (Handle)
  4363.    DvKillTask (Handle)
  4364.    Kills a program running under DesqView. The handle is the one returned
  4365.    be DvPifExecute in DvLastHandle.
  4366.  
  4367.    See Also: DvPifExecute
  4368.  
  4369.    Category: DesqView
  4370.  
  4371.    DvLastHandle : Number
  4372.    DvLastHandle : Number
  4373.    DvLastHandle : Number
  4374.    Returns a number that is associated with a program running under
  4375.    DesqView. This number is used to control other programs running under
  4376.    DesqView. It is set by DvPifExecute.
  4377.  
  4378.    See Also: DvPifExecute
  4379.  
  4380.    Category: DesqView
  4381.  
  4382.    DvLoaded : Boolean
  4383.    DvLoaded : Boolean
  4384.    DvLoaded : Boolean
  4385.    Returns true if DesqView is loaded.
  4386.  
  4387.    Category: DesqView
  4388.  
  4389.    DvMoveWindow (Handle,X,Y)
  4390.    DvMoveWindow (Handle,X,Y)
  4391.    DvMoveWindow (Handle,X,Y)
  4392.    Moves DesqView window upper left corner to position X,Y.
  4393.  
  4394.    Category: DesqView
  4395.  
  4396.    DvMyHandle : Number
  4397.    DvMyHandle : Number
  4398.    DvMyHandle : Number
  4399.    Returns the DesqView handle of the current process.
  4400.  
  4401.    See Also: DvLastHandle
  4402.  
  4403.    Category: DesqView
  4404.  
  4405.  
  4406.  
  4407.    Computer Tyme MarxMenu Users Manual                     Page 66
  4408.    _______________________________________________________________
  4409.  
  4410.  
  4411.    DvPifExecute (Pif File)
  4412.    DvPifExecute (Pif File)
  4413.    DvPifExecute (Pif File)
  4414.    Executes another program under DesqView in another window. MarxMenu
  4415.    stays resident in its original window. The window executes according to
  4416.    the contents of the DesqView PIF file. The PIF file can be specified by
  4417.    using the full name. If you leave of the extension, MarxMenu assumes the
  4418.    extension DVP. If you pass a two character name, like the two characters
  4419.    in the DesqView menus, then MarxMenu will add -PIF.DVP to the name. If
  4420.    the PIF file is on the path, MarxMenu will find it.
  4421.  
  4422.    Warning! DesqView must be loaded to run this command.
  4423.  
  4424.     Example:
  4425.       DvPifExecute 'BD'
  4426.       DvPifExecute 'BD-PIF'       ;These all execute Big DOS
  4427.       DVPifExecute 'BD-PIF.DVP'
  4428.  
  4429.    The task handle is loaded into a variable named DvLastHandle. When the
  4430.    program starts, it becomes the current top program.
  4431.  
  4432.    See Also: DvLoaded, DvLastHandle
  4433.  
  4434.    Category: DesqView
  4435.  
  4436.    DvResizeWindow (Handle,Width,Height)
  4437.    DvResizeWindow (Handle,Width,Height)
  4438.    DvResizeWindow (Handle,Width,Height)
  4439.    Changes the size of a DesqView window.
  4440.  
  4441.    Category: DesqView
  4442.  
  4443.    DvSetBottom (Handle)
  4444.    DvSetBottom (Handle)
  4445.    DvSetBottom (Handle)
  4446.    Sets the program associated with the handle to the bottom of the task
  4447.    stack.
  4448.  
  4449.    See Also: DvSetTop
  4450.  
  4451.    Category: DesqView
  4452.  
  4453.    DvSetTop (Handle)
  4454.    DvSetTop (Handle)
  4455.    DvSetTop (Handle)
  4456.    Sets the program associated with the handle to be the top running task.
  4457.    Using DvMyHandle allows MarxMenu to regain control after starting
  4458.    another task.
  4459.  
  4460.     Example:
  4461.        DvSetTop (DvMyHandle)
  4462.  
  4463.    See Also: DvSetBottom, DvLastHandle
  4464.  
  4465.    Category: DesqView
  4466.  
  4467.  
  4468.  
  4469.    Computer Tyme MarxMenu Users Manual                     Page 67
  4470.    _______________________________________________________________
  4471.  
  4472.  
  4473.    DvUnFreeze (Handle)
  4474.    DvUnFreeze (Handle)
  4475.    DvUnFreeze (Handle)
  4476.    UnFreezes a program. The program starts executing again.
  4477.  
  4478.    See Also: DvFreeze, DvPifExecute, DvLastHandle
  4479.  
  4480.    Category: DesqView
  4481.  
  4482.    DvUnHide (Handle)
  4483.    DvUnHide (Handle)
  4484.    DvUnHide (Handle)
  4485.    Reverses the effect of DvHide making program output visable again.
  4486.  
  4487.    See Also: DvHide
  4488.  
  4489.    Category: DesqView
  4490.  
  4491.    Else
  4492.    Else
  4493.    Else
  4494.    Starts lines executed if a condition is not true.
  4495.  
  4496.    See Also: If Then Endif
  4497.  
  4498.    Category: Conditional
  4499.  
  4500.    EndComment
  4501.    EndComment
  4502.    EndComment
  4503.    Ends a comment block.
  4504.  
  4505.    See Also: Comment
  4506.  
  4507.    Category: Misc
  4508.  
  4509.    EndIf
  4510.    EndIf
  4511.    EndIf
  4512.    Ends an if statement.
  4513.  
  4514.    See Also: If Else Then
  4515.  
  4516.    Category: Conditional
  4517.  
  4518.    EndLoop
  4519.    EndLoop
  4520.    EndLoop
  4521.    Ends a loop statement.
  4522.  
  4523.    See Also: Loop LoopIndex LoopLimit
  4524.  
  4525.    Category: Conditional
  4526.  
  4527.  
  4528.  
  4529.    Computer Tyme MarxMenu Users Manual                     Page 68
  4530.    _______________________________________________________________
  4531.  
  4532.  
  4533.    EndOfFile (FileVar) : Boolean
  4534.    EndOfFile (FileVar) : Boolean
  4535.    EndOfFile (FileVar) : Boolean
  4536.    Returns True if you are at the end of the file.
  4537.  
  4538.     Example:
  4539.       Var In
  4540.  
  4541.       FileAssign (In,'C:\NOTES\READ.ME')
  4542.       FileOpen (In)
  4543.       While not EndOfFile (In)
  4544.          Writeln (FileReadLn (In))
  4545.       EndWhile
  4546.       FileClose (In)
  4547.  
  4548.    Category: File
  4549.  
  4550.    EndProc
  4551.    EndProc
  4552.    EndProc
  4553.    Ends a Procedure.
  4554.  
  4555.    See Also: Procedure Return
  4556.  
  4557.    Category: Misc
  4558.  
  4559.    EndWhile
  4560.    EndWhile
  4561.    EndWhile
  4562.    Ends a While statement.
  4563.  
  4564.    See Also: While
  4565.  
  4566.    Category: Conditional
  4567.  
  4568.    EnvFree : Number
  4569.    EnvFree : Number
  4570.    EnvFree : Number
  4571.    Returns the free space in the selected environment.
  4572.  
  4573.    Category: Environment
  4574.  
  4575.    EnvSize : Number
  4576.    EnvSize : Number
  4577.    EnvSize : Number
  4578.    Returns the size of the selected environment.
  4579.  
  4580.     Example:
  4581.       if EnvSize < 20
  4582.          Writeln ('Your envrionment size is less than 20 bytes!!')
  4583.       endif
  4584.  
  4585.    Category: Environment
  4586.  
  4587.    EraseTopWindow
  4588.    EraseTopWindow
  4589.    EraseTopWindow
  4590.    Erases the last window created with DrawBox.
  4591.  
  4592.    See Also: EraseWindow
  4593.  
  4594.    Category: Display
  4595.  
  4596.  
  4597.  
  4598.    Computer Tyme MarxMenu Users Manual                     Page 69
  4599.    _______________________________________________________________
  4600.  
  4601.  
  4602.    EraseWindow (Number)
  4603.    EraseWindow (Number)
  4604.    EraseWindow (Number)
  4605.    Erases a window by number. This allows you to erase a window that is not
  4606.    the top window.
  4607.  
  4608.    See Also: CurrentWindow, SetTopWindow, EraseTopWindow
  4609.  
  4610.    Category: Display
  4611.  
  4612.    Execute (command string)
  4613.    Execute (command string)
  4614.    Execute (command string)
  4615.    This allows you to execute a program without dropping out of MarxMenu.
  4616.    MarxMenu remains resident in memory and takes up approximately 50k. No
  4617.    batch file will be created by MarxMenu.
  4618.  
  4619.    This is handy if you have a small program you want to run from the menu
  4620.    but don't want to allow for the time required by MarxMenu to create and
  4621.    run a batch file. You can also execute some programs in a MarxMenu
  4622.    window (See Also: DosWindow). You can also execute a program and examine
  4623.    the return code.
  4624.  
  4625.    This command can be placed in a progression of menu commands without any
  4626.    special handling. Under an OnKey statement, you will need to enclose the
  4627.    command between a begin and end statement.
  4628.  
  4629.     Example:
  4630.       OnKey 'D'
  4631.       |UseCommand Off
  4632.       |Execute 'C:\DM.COM'  ;Note the COM extension is required here.
  4633.  
  4634.    Note: If UseCommand is True or On, MarxMenu will load COMMAND.COM to
  4635.    execute your command. If UseCommand is False, MarxMenu will execute your
  4636.    file directly without COMMAND.COM. Using COMMAND.COM will execute
  4637.    slightly slower, use 3.5k more ram, and allow you to use command lines
  4638.    just like you would from the DOS prompt.
  4639.  
  4640.    If you set UseCommand to off, you will have to include the COM or EXE
  4641.    extension in the name. If you don't include the extension, MarxMenu will
  4642.    automatically override UseCommand and load the command processor.
  4643.  
  4644.    COMMAND.COM is required when running internal DOS commands like COPY or
  4645.    DIR. It is also required to run batch files.
  4646.  
  4647.    When UseCommand is off, MarxMenu will search the PATH for the executable
  4648.    file if it isn't in the current directory.
  4649.  
  4650.    Not using COMMAND.COM allows you to use the ReturnCode variable to get
  4651.    the ERRORLEVEL from the subprogram. If COMMAND.COM is loaded, the
  4652.    ERRORLEVEL of the subprogram is lost.
  4653.  
  4654.    The ClearScreenFirst (On/Off) controls whether MarxMenu will clear the
  4655.    screen before you execute.
  4656.  
  4657.  
  4658.  
  4659.    Computer Tyme MarxMenu Users Manual                     Page 70
  4660.    _______________________________________________________________
  4661.  
  4662.  
  4663.    The PauseAfterExecute (On/Off) allows you to have a pause like the Pause
  4664.    command in batch files. That way you can read the screen before it
  4665.    restores the MarxMenu screen. MarxMenu will display "Press any key to
  4666.    return to MarxMenu."
  4667.  
  4668.    Category: Execution
  4669.  
  4670.    ExistDir (directory) : Boolean
  4671.    ExistDir (directory) : Boolean
  4672.    ExistDir (directory) : Boolean
  4673.    Used to test whether or not a DIRECTORY exists.
  4674.  
  4675.    See Also: UseCommand, DosWindow, PauseAfterExecute, ClearScreenFirst
  4676.  
  4677.    Category: File
  4678.  
  4679.    ExistFile : Boolean
  4680.    ExistFile : Boolean
  4681.    ExistFile : Boolean
  4682.    Used to test whether or not a FILE exists.
  4683.  
  4684.    Category: File
  4685.  
  4686.    ExistOnPath (string) : String
  4687.    ExistOnPath (string) : String
  4688.    ExistOnPath (string) : String
  4689.    Used to search the existing paths for the command to be executed by
  4690.    Execute or other function. The program variable must include the full
  4691.    filename.
  4692.  
  4693.     Example:
  4694.       OnKey 'D'
  4695.       |Execute(ExistOnPath('DM.COM'))
  4696.  
  4697.    If the file is not found, a null string is returned.
  4698.  
  4699.    Category: File
  4700.  
  4701.    ExitCode
  4702.    ExitCode
  4703.    ExitCode
  4704.    This can be set so MarxMenu will return an ErrorLevel that can be used
  4705.    in a batch file.
  4706.  
  4707.     Example:
  4708.        ExitCode = 100
  4709.  
  4710.    When MarxMenu exits it will use ErrorLevel 100.
  4711.  
  4712.    Category: Execution
  4713.  
  4714.    ExitMenu
  4715.    ExitMenu
  4716.    ExitMenu
  4717.    Causes MarxMenu to exit.
  4718.  
  4719.    Category: Execution
  4720.  
  4721.  
  4722.  
  4723.    Computer Tyme MarxMenu Users Manual                     Page 71
  4724.    _______________________________________________________________
  4725.  
  4726.  
  4727.    Exp (Real) : Real
  4728.    Exp (Real) : Real
  4729.    Exp (Real) : Real
  4730.    Returns the Exponential of a real. Inverse of Ln.
  4731.  
  4732.    Category: Math, Float
  4733.  
  4734.    Explode (on/off)
  4735.    Explode (on/off)
  4736.    Explode (on/off)
  4737.    Turn exploding windows on/off.
  4738.  
  4739.    Category: Display
  4740.  
  4741.    ExplodeDelay (number)
  4742.    ExplodeDelay (number)
  4743.    ExplodeDelay (number)
  4744.    Sets the speed of exploding windows. Use this command to adjust the
  4745.    speed of the exploding windows. Default is 15.
  4746.  
  4747.    Category: Display
  4748.  
  4749.    Extension (String) : String
  4750.    Extension (String) : String
  4751.    Extension (String) : String
  4752.    Returns the Extention of a file name.
  4753.  
  4754.     Example:
  4755.       Extension('MARXMENU.EXE')  ;returns EXE
  4756.  
  4757.    See Also: NamePart, PathPart, FilePart
  4758.  
  4759.    Category: String
  4760.  
  4761.    False : Boolean
  4762.    False : Boolean
  4763.    False : Boolean
  4764.    Returns boolean False.
  4765.  
  4766.    Category: Boolean
  4767.  
  4768.    Feb : Number
  4769.    Feb : Number
  4770.    Feb : Number
  4771.    February, Returns the number 2.
  4772.  
  4773.    Category: Time
  4774.  
  4775.    FileAppend (FileVar)
  4776.    FileAppend (FileVar)
  4777.    FileAppend (FileVar)
  4778.    Opens a file for access and moves the file pointer to the end of the
  4779.    file. File writes will start at the end of the file.
  4780.  
  4781.    Category: File
  4782.  
  4783.  
  4784.  
  4785.    Computer Tyme MarxMenu Users Manual                     Page 72
  4786.    _______________________________________________________________
  4787.  
  4788.  
  4789.    FileAssign (FileVar,String)
  4790.    FileAssign (FileVar,String)
  4791.    FileAssign (FileVar,String)
  4792.    Assigns a file variable to a file name. Files must be given a name
  4793.    before they can be accessed.
  4794.  
  4795.     Example: FileAssign(BatFile,'MARX.BAT')
  4796.  
  4797.    BatFile is a variable and after the FileAssign, it becomes a file
  4798.    variable. All access to the file is done using the file variable.
  4799.  
  4800.    If an empty string is passed as the file name, MarxMenu will use the
  4801.    standard console file handles.
  4802.  
  4803.    Category: File
  4804.  
  4805.    FileAttr (string) : Number
  4806.    FileAttr (string) : Number
  4807.    FileAttr (string) : Number
  4808.    Returns file attribute. Can be used on directories also.
  4809.  
  4810.    Category: File
  4811.  
  4812.    FileClose (FileVar)
  4813.    FileClose (FileVar)
  4814.    FileClose (FileVar)
  4815.    Closes a file and deallocates the memory space used by the file
  4816.    variable.
  4817.  
  4818.    See Also: FileOpen
  4819.  
  4820.    Category: File
  4821.  
  4822.    FileCreate (FileVar)
  4823.    FileCreate (FileVar)
  4824.    FileCreate (FileVar)
  4825.    Creates a new file. If the file exists, it overwrites the old one.
  4826.    FileCreate opens the file for output. Do not use FileOpen with
  4827.    FileCreate.
  4828.  
  4829.    Category: File
  4830.  
  4831.    FileDate (string) : Number
  4832.    FileDate (string) : Number
  4833.    FileDate (string) : Number
  4834.    Returns file date as 32 bit integer. See Also: DOS manual for date
  4835.    structure.
  4836.  
  4837.    Category: File
  4838.  
  4839.    FileFlush (FileVar)
  4840.    FileFlush (FileVar)
  4841.    FileFlush (FileVar)
  4842.    Writes any information that is in the file buffers to disk.
  4843.  
  4844.    Category: File
  4845.  
  4846.    FileLog (FileVar,String)
  4847.    FileLog (FileVar,String)
  4848.    FileLog (FileVar,String)
  4849.    This is like FileWriteln except that it always seeks the end of the file
  4850.    and flushes its buffers after each write. Used for usage tracking.
  4851.  
  4852.    Category: File
  4853.  
  4854.  
  4855.  
  4856.    Computer Tyme MarxMenu Users Manual                     Page 73
  4857.    _______________________________________________________________
  4858.  
  4859.  
  4860.    FileOpen (FileVar)
  4861.    FileOpen (FileVar)
  4862.    FileOpen (FileVar)
  4863.    Opens a file for access. FileOpen is not needed if you are using the
  4864.    ReadTextFile command. The following example copies a text file.
  4865.  
  4866.       var Inp Out St
  4867.  
  4868.       FileAssign(Inp,'INPUT.TXT')
  4869.       FileOpen(Inp)
  4870.       FileAssign(Out,'OUTPUT.TXT')
  4871.       FileCreate(Out)
  4872.       while not EndOfFile(Inp)
  4873.          FileReadln(Inp,St)
  4874.          FileWriteln(Out,St)
  4875.       endwhile
  4876.       FileClose(Inp)
  4877.       FileClose(Out)
  4878.  
  4879.    Category: File
  4880.  
  4881.    FilePart (String) : String
  4882.    FilePart (String) : String
  4883.    FilePart (String) : String
  4884.    Returns the file part of a file name.
  4885.  
  4886.     Example:
  4887.       NamePart ('C:\MARX\MARXMENU.EXE') ;returns MARXMENU.EXE
  4888.  
  4889.    See Also: Extension, PathPart, NamePart
  4890.  
  4891.    Category: String
  4892.  
  4893.    FilePos (FileVar) : Number
  4894.    FilePos (FileVar) : Number
  4895.    FilePos (FileVar) : Number
  4896.    Returns the current file position in bytes.
  4897.  
  4898.    Category: File
  4899.  
  4900.    FileReadln (FileVar) : String
  4901.    FileReadln (FileVar) : String
  4902.    FileReadln (FileVar) : String
  4903.    Reads one line of an open file returning that line as a string.
  4904.  
  4905.     Example:
  4906.       Line3 = FileReadln(BatFile)
  4907.  
  4908.    See Also: FileOpen
  4909.  
  4910.    Category: File
  4911.  
  4912.    FileRename (Old,New)
  4913.    FileRename (Old,New)
  4914.    FileRename (Old,New)
  4915.    Renames a file from old name to new. A file may be moved to a new
  4916.    directory with this command.
  4917.  
  4918.    Category: File
  4919.  
  4920.  
  4921.  
  4922.    Computer Tyme MarxMenu Users Manual                     Page 74
  4923.    _______________________________________________________________
  4924.  
  4925.  
  4926.    FileResult : Number
  4927.    FileResult : Number
  4928.    FileResult : Number
  4929.    Returns result code from last file IO. Result codes are the same as
  4930.    Turbo Pascal IOResult codes. These codes usually match the errors
  4931.    returned in the AX register of DOS commands. 0 indicates no problem.
  4932.  
  4933.    Category: File
  4934.  
  4935.    FileSeek (FileVar,Number)
  4936.    FileSeek (FileVar,Number)
  4937.    FileSeek (FileVar,Number)
  4938.    Moves the file pointer to a specified place in the file.
  4939.  
  4940.    Category: File
  4941.  
  4942.    FileSize (string) : Number
  4943.    FileSize (string) : Number
  4944.    FileSize (string) : Number
  4945.    Returns size of file in bytes.
  4946.  
  4947.    Category: File
  4948.  
  4949.    FileWrite (FileVar,String)
  4950.    FileWrite (FileVar,String)
  4951.    FileWrite (FileVar,String)
  4952.    Writes text to a file.
  4953.  
  4954.    Category: File
  4955.  
  4956.    FileWriteln (FileVar,String)
  4957.    FileWriteln (FileVar,String)
  4958.    FileWriteln (FileVar,String)
  4959.    Writes text to a file with a carriage return and a line feed.
  4960.  
  4961.    See Also: FileOpen
  4962.  
  4963.    Category: File
  4964.  
  4965.    FixPath
  4966.    FixPath
  4967.    FixPath
  4968.    This command reads your path command and verifies that all the paths are
  4969.    accessable. Any path that isn't accessable is removed from the master
  4970.    environment. This can be used on network drives to eliminate searching
  4971.    paths on fileservers that are no longer accessable.
  4972.  
  4973.    Category: Environment
  4974.  
  4975.    Floppies : Number
  4976.    Floppies : Number
  4977.    Floppies : Number
  4978.    Returns number of floppy drives.
  4979.  
  4980.    Category: System
  4981.  
  4982.    ForceExplosion (On/Off)
  4983.    ForceExplosion (On/Off)
  4984.    ForceExplosion (On/Off)
  4985.    This changes the explosion status of a window that already exists. This
  4986.    allows windows to implode that didn't explode.
  4987.  
  4988.    Category: Display
  4989.  
  4990.  
  4991.  
  4992.    Computer Tyme MarxMenu Users Manual                     Page 75
  4993.    _______________________________________________________________
  4994.  
  4995.  
  4996.    ForceExtension (String,Ext) : String
  4997.    ForceExtension (String,Ext) : String
  4998.    ForceExtension (String,Ext) : String
  4999.    This command forces a file extension on a string.
  5000.  
  5001.     Example:
  5002.       St = ForceExtension('MAIN.MNU','MRX')
  5003.  
  5004.    This sets St equal to MAIN.MRX
  5005.  
  5006.    Category: String
  5007.  
  5008.    Fraction (Real) : Real
  5009.    Fraction (Real) : Real
  5010.    Fraction (Real) : Real
  5011.    Returns the fractional part of a real.
  5012.  
  5013.    Category: Math, Float
  5014.  
  5015.    FreeDiskSpace <drive> : Number
  5016.    FreeDiskSpace <drive> : Number
  5017.    FreeDiskSpace <drive> : Number
  5018.    Returns free disk space in bytes.
  5019.  
  5020.     Example:
  5021.       Writeln (FreeDiskSpace 'C')
  5022.  
  5023.    FreeDiskSpace only looks at the first character of the string for the
  5024.    drive letter.
  5025.  
  5026.    Category: System
  5027.  
  5028.    FreeEMS : Number
  5029.    FreeEMS : Number
  5030.    FreeEMS : Number
  5031.    Returns free EMS memory in bytes.
  5032.  
  5033.    Category: Memory
  5034.  
  5035.    FreeMemory : Number
  5036.    FreeMemory : Number
  5037.    FreeMemory : Number
  5038.    Returns the amount of free memory still available. This is the memory
  5039.    available to MarxMenu or the amount you would have using the Execute
  5040.    command.
  5041.  
  5042.    See Also: ApplicationMemory
  5043.  
  5044.    Category: Memory
  5045.  
  5046.    Fri : Number
  5047.    Fri : Number
  5048.    Fri : Number
  5049.    Friday, Returns the number 5.
  5050.  
  5051.    Category: Time
  5052.  
  5053.    GotoXY (column,row)
  5054.    GotoXY (column,row)
  5055.    GotoXY (column,row)
  5056.    Move cursor to location column,row in current box.
  5057.  
  5058.    Category: Display
  5059.  
  5060.  
  5061.  
  5062.    Computer Tyme MarxMenu Users Manual                     Page 76
  5063.    _______________________________________________________________
  5064.  
  5065.  
  5066.    Green : Number
  5067.    Green : Number
  5068.    Green : Number
  5069.    Returns the number 2.
  5070.  
  5071.    Category: Color
  5072.  
  5073.    Grey : Number
  5074.    Grey : Number
  5075.    Grey : Number
  5076.    Returns the number 7.
  5077.  
  5078.    Category: Color
  5079.  
  5080.    Hour : Number
  5081.    Hour : Number
  5082.    Hour : Number
  5083.    Return the current hour. 24 hour format.
  5084.  
  5085.    Category: Time
  5086.  
  5087.    HourOf (Date) : Number
  5088.    HourOf (Date) : Number
  5089.    HourOf (Date) : Number
  5090.    Returns the hour of a date. If Date is passed as a string it is
  5091.    converted automatically.
  5092.  
  5093.    See Also: TimeOf, BadDate
  5094.  
  5095.    Category: Time
  5096.  
  5097.    Hundredth : Number
  5098.    Hundredth : Number
  5099.    Hundredth : Number
  5100.    Returns the 1/100 of a second from the system clock. Note that the
  5101.    system clock timer tick is 1/18 second so don't expect a lot of accuracy
  5102.    here.
  5103.  
  5104.    Category: Time
  5105.  
  5106.    IdelProgram : Procedure
  5107.    IdelProgram : Procedure
  5108.    IdelProgram : Procedure
  5109.    IdelProgram is a variable that when set to the location of a procedure
  5110.    allows the procedure to run while waiting at the keyboard. This is done
  5111.    by writing a procedure that will run while waiting for input.
  5112.  
  5113.    The way you use this is to set an internal variable named IdelProgram to
  5114.    the Loc of the procedure you want to run as follows:
  5115.  
  5116.     Example:
  5117.       IdelProgram = Loc MyProcedure
  5118.  
  5119.    Note: Do not use parentheses around MyProcedure.
  5120.  
  5121.    When writing MyProcedure make it as short and quick as possible. As of
  5122.    now, MyProcedure is called continously while there is no keyboard input.
  5123.    You can also use a loop in it as follows.
  5124.  
  5125.  
  5126.  
  5127.    Computer Tyme MarxMenu Users Manual                     Page 77
  5128.    _______________________________________________________________
  5129.  
  5130.  
  5131.     Procedure MyProcedure
  5132.        SetItUp
  5133.        while not KBDReady
  5134.           {do your thing}
  5135.        endwhile
  5136.        PutItBack
  5137.     EndProc
  5138.  
  5139.    MarxMenu doesn't automatically exit your procedure or save and restore
  5140.    anything. If you're writing to the screen you have to put everything
  5141.    back the way it was.
  5142.  
  5143.    If you want to run a program at a specific time, here's how it can be
  5144.    done:
  5145.  
  5146.     Procedure MyProcedure
  5147.        if Now = TimeOf('11:00pm')
  5148.           Bat 'NIGHT'             ;run NIGHT.BAT
  5149.           ExitMenu
  5150.        endif
  5151.        if Now = TimeOf('5:00')
  5152.           Bat 'MORNING'           ;run MORNING.BAT
  5153.           ExitMenu
  5154.        endif
  5155.     EndProc
  5156.  
  5157.    See Also: Run, Loc
  5158.  
  5159.    Category: Execution
  5160.  
  5161.    If
  5162.    If
  5163.    If
  5164.    Used for program control.
  5165.  
  5166.     Usage:
  5167.  
  5168.     IF (condition) THEN (statement)
  5169.  
  5170.     IF (condition)
  5171.        (statement)
  5172.        (statement)
  5173.     ELSE
  5174.        (statement)
  5175.        (statement)
  5176.     ENDIF
  5177.  
  5178.    Category: Conditional
  5179.  
  5180.  
  5181.  
  5182.    Computer Tyme MarxMenu Users Manual                     Page 78
  5183.    _______________________________________________________________
  5184.  
  5185.  
  5186.    InactiveBox (BoxType)
  5187.    InactiveBox (BoxType)
  5188.    InactiveBox (BoxType)
  5189.    This is used to select the type of box border to use when a window is
  5190.    not the current window. If any inactive box type is specified, then when
  5191.    you execute another DrawBox, the old window's border changes to the
  5192.    inactive box type. The inactive window also loses its headers and
  5193.    shadows.
  5194.  
  5195.    Note that InActiveBox must be used BEFORE the DrawBox command.
  5196.  
  5197.     Example:
  5198.       InActiveBox (SingleLineBox) ;switches to single line box if
  5199.                                    inactive.
  5200.  
  5201.       InactiveBox (NoBoxBorder)   ;disables InActive effect.
  5202.  
  5203.    See Also: InactiveBoxColor
  5204.  
  5205.    Category: Display
  5206.  
  5207.    InactiveBoxColor (foreground,background)
  5208.    InactiveBoxColor (foreground,background)
  5209.    InactiveBoxColor (foreground,background)
  5210.    Selects the color of the inactive box window. If Black on Black is
  5211.    selected, (default), the inactive box color is the same as the active
  5212.    box color.
  5213.  
  5214.     Example:
  5215.       BoxBorderColor Yellow Blue
  5216.       InActiveBoxColor Brown Blue
  5217.  
  5218.    See Also: InactiveBox BoxBorderColor
  5219.  
  5220.    Category: Color
  5221.  
  5222.    Include (MenuName)
  5223.    Include (MenuName)
  5224.    Include (MenuName)
  5225.    This is used to insert the menu code from another file into the menu
  5226.    that you are compiling.
  5227.  
  5228.     Example:
  5229.       Include 'DOS.MNU'
  5230.  
  5231.    This will compile DOS.MNU into your present menu as if that whole file
  5232.    were part of the menu you are working on.
  5233.  
  5234.    This is useful if you have several menus that share common code. By
  5235.    moving this common code to a separate file, and using an Include
  5236.    statement, you can change the common code and update several menus at
  5237.    once. If you are using overlays, it is a good idea to put your shared
  5238.    variables in an include file. This asures that the shared variables will
  5239.    be the same for all overlays.
  5240.  
  5241.  
  5242.  
  5243.    Computer Tyme MarxMenu Users Manual                     Page 79
  5244.    _______________________________________________________________
  5245.  
  5246.  
  5247.    Changing an include file does not cause MarxMenu to recompile
  5248.    automatically like changing the MNU does. You will have to force it to
  5249.    compile your menus.
  5250.  
  5251.    This can be done several ways. You can type MARXCOMP (menu) or you can
  5252.    just type DEL *.MRX which will cause all the menus to recompile the next
  5253.    time they are run.
  5254.  
  5255.    Category: Misc
  5256.  
  5257.    InputString (String)
  5258.    InputString (String)
  5259.    InputString (String)
  5260.    Preloads a string for the Readln command. The next Readln will have the
  5261.    InputString on the screen for you to edit or accept. Once Readln
  5262.    executes, InputString is cleared to a blank string.
  5263.  
  5264.     Example:
  5265.       InputString = ReadEnv('USERNAME')
  5266.       YourName = Readln
  5267.  
  5268.    Category: Keyboard, String
  5269.  
  5270.    Insert (InsString,OrigString,Pos)
  5271.    Insert (InsString,OrigString,Pos)
  5272.    Insert (InsString,OrigString,Pos)
  5273.    Inserts a string into a string.
  5274.  
  5275.     Example:
  5276.       St = 'ABCDEF'
  5277.       Insert('123',St,3)
  5278.  
  5279.    St will become 'ABC123DEF'
  5280.  
  5281.    Category: String
  5282.  
  5283.    InsertMode (On/Off)
  5284.    InsertMode (On/Off)
  5285.    InsertMode (On/Off)
  5286.    Turns insert mode on and off for Readln commands.
  5287.  
  5288.    Category: Keyboard
  5289.  
  5290.    Int (Real) : Real
  5291.    Int (Real) : Real
  5292.    Int (Real) : Real
  5293.    Returns the integer part of a real as a real.
  5294.  
  5295.    Category: Math, Float
  5296.  
  5297.    Integer (Real) : Number
  5298.    Integer (Real) : Number
  5299.    Integer (Real) : Number
  5300.    Returns the integer part of a real as an integer. The fractional part is
  5301.    truncated.
  5302.  
  5303.    Category: Math, Float
  5304.  
  5305.  
  5306.  
  5307.    Computer Tyme MarxMenu Users Manual                     Page 80
  5308.    _______________________________________________________________
  5309.  
  5310.  
  5311.    InverseColor (forecolor,backcolor)
  5312.    InverseColor (forecolor,backcolor)
  5313.    InverseColor (forecolor,backcolor)
  5314.    Sets colors for inverse bar used with UseArrows command.
  5315.  
  5316.    Category: Color
  5317.  
  5318.    Jan : Number
  5319.    Jan : Number
  5320.    Jan : Number
  5321.    January, Returns the number 1.
  5322.  
  5323.    Category: Time
  5324.  
  5325.    Jul : Number
  5326.    Jul : Number
  5327.    Jul : Number
  5328.    July, Returns the number 7.
  5329.  
  5330.    Category: Time
  5331.  
  5332.    Jun : Number
  5333.    Jun : Number
  5334.    Jun : Number
  5335.    June, Returns the number 6.
  5336.  
  5337.    Category: Time
  5338.  
  5339.    Jump (menu)
  5340.    Jump (menu)
  5341.    Jump (menu)
  5342.    Jumps to another menu and does not return to original menu.
  5343.  
  5344.    Category: Execution
  5345.  
  5346.    KbdReady : Boolean
  5347.    KbdReady : Boolean
  5348.    KbdReady : Boolean
  5349.    Returns true if Key is pressed.
  5350.  
  5351.    Category: Keyboard
  5352.  
  5353.    KeySave : String
  5354.    KeySave : String
  5355.    KeySave : String
  5356.    Stores your keystrokes that you pressed to get to the menu level where
  5357.    you are at. KeySave is passed to DOS using the SET KSV= command to store
  5358.    your position in the menu system. To make this work, you must execute
  5359.    SavePosition On.
  5360.  
  5361.    This variable can be set by you to force MarxMenu to return to a place
  5362.    in the menu other than where you are. This allows MarxMenu to suggest a
  5363.    next step.
  5364.  
  5365.    See Also: SavePosition
  5366.  
  5367.    Category: String, Environment, Execution
  5368.  
  5369.    KeyFromMouse : Boolean
  5370.    KeyFromMouse : Boolean
  5371.    KeyFromMouse : Boolean
  5372.    Normally mouse activity is translated into keystrokes. This variable is
  5373.    set to true if the keystroke came from the mouse.
  5374.  
  5375.    Category: MouseControl
  5376.  
  5377.  
  5378.  
  5379.    Computer Tyme MarxMenu Users Manual                     Page 81
  5380.    _______________________________________________________________
  5381.  
  5382.  
  5383.    KillMusic
  5384.    KillMusic
  5385.    KillMusic
  5386.    This command stops the music and de-allocates the memory used by the
  5387.    music buffer.
  5388.  
  5389.    Category: Music
  5390.  
  5391.    LastKey : String
  5392.    LastKey : String
  5393.    LastKey : String
  5394.    LastKey returns the last key that was typed at the keyboard. This can be
  5395.    used after a Readln to determine if the ESC key was pressed or perhaps
  5396.    the up or down arrow keys.
  5397.  
  5398.    Sometimes after the press of an ESC key, MarxMenu wants to exit more
  5399.    levels than you want it to. This can be controlled by setting LastKey =
  5400.    ' ' to stop the abort process.
  5401.  
  5402.    See Also: Readln
  5403.  
  5404.    Category: String
  5405.  
  5406.    LBlue : Number
  5407.    LBlue : Number
  5408.    LBlue : Number
  5409.    Light Blue, Returns the number 9.
  5410.  
  5411.    Category: Color
  5412.  
  5413.    LCyan : Number
  5414.    LCyan : Number
  5415.    LCyan : Number
  5416.    Light Cyan, Returns the number 11.
  5417.  
  5418.    Category: Color
  5419.  
  5420.    Left (string,count) : String
  5421.    Left (string,count) : String
  5422.    Left (string,count) : String
  5423.    Returns string starting at the beginning for count characters.
  5424.  
  5425.     Example: Left('ABCDEF',3) returns 'ABC'
  5426.  
  5427.    Category: String
  5428.  
  5429.    Length (string) : Number
  5430.    Length (string) : Number
  5431.    Length (string) : Number
  5432.    Returns the length of the string.
  5433.  
  5434.     Example: Length('ABCD') returns 4.
  5435.  
  5436.    Category: String
  5437.  
  5438.    LGreen : Number
  5439.    LGreen : Number
  5440.    LGreen : Number
  5441.    Light Green, Returns the number 10.
  5442.  
  5443.    Category: Color
  5444.  
  5445.  
  5446.  
  5447.    Computer Tyme MarxMenu Users Manual                     Page 82
  5448.    _______________________________________________________________
  5449.  
  5450.  
  5451.    LGrey : Number
  5452.    LGrey : Number
  5453.    LGrey : Number
  5454.    Light Grey, Returns the number 8.
  5455.  
  5456.    Category: Color
  5457.  
  5458.    LMag : Number
  5459.    LMag : Number
  5460.    LMag : Number
  5461.    Light Magenta, Returns the number 13.
  5462.  
  5463.    Category: Color
  5464.  
  5465.    LMagenta : Number
  5466.    LMagenta : Number
  5467.    LMagenta : Number
  5468.    Light Magenta, Returns the number 13.
  5469.  
  5470.    Category: Color
  5471.  
  5472.    Ln (Real) : Real
  5473.    Ln (Real) : Real
  5474.    Ln (Real) : Real
  5475.    Returns the Natural Logarithm of a real.
  5476.  
  5477.    Category: Math, Float
  5478.  
  5479.    Loc (Procedure)
  5480.    Loc (Procedure)
  5481.    Loc (Procedure)
  5482.    This returns the location of a procedure for storing in a variable. The
  5483.    variable is later executed using the Run command.
  5484.  
  5485.    See Also: Run
  5486.  
  5487.    Category: Misc
  5488.  
  5489.    LockWord (word)
  5490.    LockWord (word)
  5491.    LockWord (word)
  5492.    Sets a default word for the console activated keyboard lock. When the
  5493.    screen goes blank, the user has to type the LockWord to unblank the
  5494.    screen. This is a security feature so that if a user leaves the menu
  5495.    unattended, it prevents others from tampering with the system.
  5496.  
  5497.    See Also: LogoffTime, BlankTime
  5498.  
  5499.    Category: Display
  5500.  
  5501.    Logoff
  5502.    Logoff
  5503.    Logoff
  5504.    Logoff logs you off the network the same way that LogoffTime does except
  5505.    it does it immediately. See LogoffTime for details as to how.
  5506.  
  5507.    See Also: LogoffTime
  5508.  
  5509.    Category: Execution
  5510.  
  5511.  
  5512.  
  5513.    Computer Tyme MarxMenu Users Manual                     Page 83
  5514.    _______________________________________________________________
  5515.  
  5516.  
  5517.    LogoffTime : Number
  5518.    LogoffTime : Number
  5519.    LogoffTime : Number
  5520.    MarxMenu supports automatic logoff after a number of minutes of
  5521.    inactivity set by LogoffTime. This only has effect while you are in the
  5522.    menu and not while an application is running. It is set as follows:
  5523.  
  5524.     LogoffTime = 5 ;sets time to 5 minutes
  5525.  
  5526.    Setting LogoffTime to 0 disbles this feature.
  5527.  
  5528.    When the time to logoff occurs, MarxMenu will first look for a batch
  5529.    file in the \LOGIN directory called OFF.BAT. If it doesn't find it,
  5530.    MarxMenu will look for OFF.BAT on the PATH. If this isn't found,
  5531.    MarxMenu will look for LOGOFF.EXE. If this isn't found, then MarxMenu
  5532.    will look for LOGOUT.COM.
  5533.  
  5534.    LOGOFF.EXE and LOGOUT.COM are executed by stuffing the keyboard buffer.
  5535.  
  5536.    The best way to use this feature is to create an OFF.BAT file in your
  5537.    \LOGIN directory or on the PATH.
  5538.  
  5539.    See Also: LockWord
  5540.  
  5541.    Category: Execution
  5542.  
  5543.    Loop
  5544.    Loop
  5545.    Loop
  5546.    MarxMenu has a looping structure that lets you execute a piece of code a
  5547.    specific number of times. It is used as follows:
  5548.  
  5549.     Example:
  5550.       Loop 8
  5551.          Writeln 'Pass Number ' LoopIndex
  5552.       EndLoop
  5553.  
  5554.    You start with LOOP (Number) which specifies the number of times to
  5555.    execute the code between LOOP and ENDLOOP. There are 2 variables
  5556.    available here for loop control. LoopIndex starts at 1 and is
  5557.    incremented at each EndLoop. When LoopIndex becomes greater than
  5558.    LoopLimit, the loop exits. LoopIndex and LoopLimit refer to the
  5559.    innermost loop.
  5560.  
  5561.    As loops are nested LoopIndexes and LoopLimits are kept in two arrays;
  5562.    LoopIndexStack and LoopLimitStack. There is also a variable called
  5563.    LoopLevel which points to the current loop parameters.
  5564.  
  5565.     Thus:
  5566.       LoopIndex is the same as LoopIndexStack[LoopLevel]
  5567.       LoopLimit is the same as LoopLimitStack[LoopLevel]
  5568.  
  5569.    You may therefore access outer loop parameters through the loop stacks.
  5570.    For instance LoopIndexStack[LoopLevel - 1] would refer to the second
  5571.    innermost loop index. LoopIndexStack[1] refers to the outermost loop.
  5572.  
  5573.  
  5574.  
  5575.    Computer Tyme MarxMenu Users Manual                     Page 84
  5576.    _______________________________________________________________
  5577.  
  5578.  
  5579.    The loop variables can be read and written to so you can adjust the
  5580.    looping parameters while inside the loop. You can even adjust the
  5581.    parameters of outer loops.
  5582.  
  5583.    See Also: EndLoop LoopIndex LoopLimit
  5584.  
  5585.    Category: Conditional
  5586.  
  5587.    LoopIndex
  5588.    LoopIndex
  5589.    LoopIndex
  5590.    Returns the loop you are in.
  5591.  
  5592.    See Also: Loop EndLoop LoopLimit
  5593.  
  5594.    Category: Conditional
  5595.  
  5596.    LoopLimit
  5597.    LoopLimit
  5598.    LoopLimit
  5599.    Returns the upper limit of the loop you are in.
  5600.  
  5601.    See Also: Loop EndLoop LoopIndex
  5602.  
  5603.    Category: Conditional
  5604.  
  5605.    LRed : Number
  5606.    LRed : Number
  5607.    LRed : Number
  5608.    Light Red returns the number 12.
  5609.  
  5610.    Category: Color
  5611.  
  5612.    MachineName : String
  5613.    MachineName : String
  5614.    MachineName : String
  5615.    This reads or sets the MachineName for NetBios networks.
  5616.  
  5617.     Example:
  5618.        MachineName = IBM   ;sets the MachineName
  5619.        Writeln MachineName ;displays the MachineName
  5620.  
  5621.    Category: Novell
  5622.  
  5623.    Mag : Number
  5624.    Mag : Number
  5625.    Mag : Number
  5626.    Magenta, Returns the number 5.
  5627.  
  5628.    Category: Color
  5629.  
  5630.    Magenta : Number
  5631.    Magenta : Number
  5632.    Magenta : Number
  5633.    Magenta, Returns the number 5.
  5634.  
  5635.    Category: Color
  5636.  
  5637.    Mar : Number
  5638.    Mar : Number
  5639.    Mar : Number
  5640.    March, Returns the number 3.
  5641.  
  5642.    Category: Time
  5643.  
  5644.  
  5645.  
  5646.    Computer Tyme MarxMenu Users Manual                     Page 85
  5647.    _______________________________________________________________
  5648.  
  5649.  
  5650.    MarxVersion : String
  5651.    MarxVersion : String
  5652.    MarxVersion : String
  5653.    Returns the version number of the MarxMenu you are running.
  5654.  
  5655.    Category: String
  5656.  
  5657.    MasterEnvironment
  5658.    MasterEnvironment
  5659.    MasterEnvironment
  5660.    MasterEnvironment selects the Master Environment for use with
  5661.    environment access commands.
  5662.  
  5663.    See Also: ReadEnv SetEnv ReadEnvironment ShellEnvironment
  5664.    See Also: CurrentEnvironment ParentEnvironment
  5665.  
  5666.    Category: Environment
  5667.  
  5668.    Max (Num,Num) : Num
  5669.    Max (Num,Num) : Num
  5670.    Max (Num,Num) : Num
  5671.    Returns the largest of two numbers or strings.
  5672.  
  5673.    Category: Math, String, Float
  5674.  
  5675.    May : Number
  5676.    May : Number
  5677.    May : Number
  5678.    May, Returns the number 5.
  5679.  
  5680.    Category: Time
  5681.  
  5682.    Mem (seg,ofs) : Number
  5683.    Mem (seg,ofs) : Number
  5684.    Mem (seg,ofs) : Number
  5685.    Returns the byte at memory location seg:ofs or lets you write to the
  5686.    byte at seg:ofs.
  5687.  
  5688.     Example:
  5689.       X = Mem(40,5)  ;reads memory into X
  5690.       Mem(40,5) = X  ;writes X into memory
  5691.  
  5692.    Category: Memory
  5693.  
  5694.    MemL (seg,ofs) : Number
  5695.    MemL (seg,ofs) : Number
  5696.    MemL (seg,ofs) : Number
  5697.    Returns the long integer at memory location seg:ofs or lets you write to
  5698.    the byte at seg:ofs.
  5699.  
  5700.     Example:
  5701.       X = MemL(40,5)  ;reads memory into X
  5702.       MemL(40,5) = X  ;writes X into memory
  5703.  
  5704.    Category: Memory
  5705.  
  5706.    MemSize : Number
  5707.    MemSize : Number
  5708.    MemSize : Number
  5709.    Returns total memory size in K. (640 = 640k)
  5710.  
  5711.    Category: Memory
  5712.  
  5713.  
  5714.  
  5715.    Computer Tyme MarxMenu Users Manual                     Page 86
  5716.    _______________________________________________________________
  5717.  
  5718.  
  5719.    MemW (seg,ofs) : Number
  5720.    MemW (seg,ofs) : Number
  5721.    MemW (seg,ofs) : Number
  5722.    Returns the word at memory location seg:ofs or lets you write to the
  5723.    byte at seg:ofs.
  5724.  
  5725.     Example:
  5726.       X = MemW(40,5)  ;reads memory into X
  5727.       MemW(40,5) = X  ;writes X into memory
  5728.  
  5729.    Category: Memory
  5730.  
  5731.    MenuKeyBuffer
  5732.    MenuKeyBuffer
  5733.    MenuKeyBuffer
  5734.    This is an internal MarxMenu variable. It is where the environment
  5735.    variable KSV= is read. Characters in this string variable are treated as
  5736.    if someone had typed them from the keyboard.
  5737.  
  5738.    This variable can be set to blank in order to override the effects of
  5739.    SET KSV= or can be set to a different value in order to automatically
  5740.    make selections as if they were typed in.
  5741.  
  5742.    See Also: SavePosition, KeySave
  5743.  
  5744.    Category: Keyboard
  5745.  
  5746.    Mid (string,pos,count) : String
  5747.    Mid (string,pos,count) : String
  5748.    Mid (string,pos,count) : String
  5749.    Returns a string starting at pos for count.
  5750.  
  5751.     Example:
  5752.        Mid('ABCDEFG',2,3) returns 'CDE'
  5753.  
  5754.    Category: String
  5755.  
  5756.    Min (Num,Num) : Num
  5757.    Min (Num,Num) : Num
  5758.    Min (Num,Num) : Num
  5759.    Returns the smallest of two numbers or strings.
  5760.  
  5761.    Category: Math, String, Float
  5762.  
  5763.    MinorDosVersion : Number
  5764.    MinorDosVersion : Number
  5765.    MinorDosVersion : Number
  5766.    Returns the minor DOS version number.
  5767.  
  5768.    See Also: DosVersion, DosVersionString
  5769.  
  5770.    Category: System
  5771.  
  5772.    Minute : Number
  5773.    Minute : Number
  5774.    Minute : Number
  5775.    Returns the current minute.
  5776.  
  5777.    Category: Time
  5778.  
  5779.  
  5780.  
  5781.    Computer Tyme MarxMenu Users Manual                     Page 87
  5782.    _______________________________________________________________
  5783.  
  5784.  
  5785.    MinuteOf (Date) : Number
  5786.    MinuteOf (Date) : Number
  5787.    MinuteOf (Date) : Number
  5788.    Returns the minute of a date. If Date is passed as a string it is
  5789.    converted automatically.
  5790.  
  5791.    See Also: TimeOf, BadDate
  5792.  
  5793.    Category: Time
  5794.  
  5795.    Mod : Operator
  5796.    Mod : Operator
  5797.    Mod : Operator
  5798.    Returns the remainder of the division of two numbers.
  5799.  
  5800.    Category: Math
  5801.  
  5802.    ModifyPath
  5803.    ModifyPath
  5804.    ModifyPath
  5805.    The MarxMenu directory should be in the search path. This is because if
  5806.    you change directories, MarxMenu may not be able to find the menu files.
  5807.    MarxMenu will now test the PATH= environment variable before it writes
  5808.    the batch file to execute a program. If the MarxMenu path is not
  5809.    included, MarxMenu will add the path to the Master Environment if it
  5810.    can.
  5811.  
  5812.    If for some reason you don't want to allow MarxMenu to modify the master
  5813.    environment, use the command:
  5814.  
  5815.     ModifyPath Off
  5816.  
  5817.    Category: Environment
  5818.  
  5819.    Mon : Number
  5820.    Mon : Number
  5821.    Mon : Number
  5822.    Monday, Returns the number 1.
  5823.  
  5824.    Category: Time
  5825.  
  5826.    Mono : Number
  5827.    Mono : Number
  5828.    Mono : Number
  5829.    Returns the number 7. Relates to the DOS Mode MONO command.
  5830.  
  5831.    Category: Video
  5832.  
  5833.    Month : Number
  5834.    Month : Number
  5835.    Month : Number
  5836.    Returns current month.
  5837.  
  5838.    Category: Time
  5839.  
  5840.    MonthOf (Date) : Number
  5841.    MonthOf (Date) : Number
  5842.    MonthOf (Date) : Number
  5843.    Returns the month of a date. If Date is passed as a string it is
  5844.    converted automatically.
  5845.  
  5846.    See Also: TimeOf, BadDate
  5847.  
  5848.    Category: Time
  5849.  
  5850.  
  5851.  
  5852.    Computer Tyme MarxMenu Users Manual                     Page 88
  5853.    _______________________________________________________________
  5854.  
  5855.  
  5856.    Mouse
  5857.    Mouse
  5858.    Mouse
  5859.    MarxMenu normally uses the mouse if present. If you don't want to use
  5860.    the mouse you can use the command:
  5861.  
  5862.     Mouse Off
  5863.  
  5864.    To turn the mouse back on type:
  5865.  
  5866.     Mouse On
  5867.  
  5868.    The mouse is actually switched on and off at the point when MarxMenu
  5869.    waits at the keyboard for a keypress.
  5870.  
  5871.    Mouse Sensitivity can be set for individual workstations on a network by
  5872.    setting environment variables MouseX and MouseY as follows:
  5873.  
  5874.     Set MouseX=15
  5875.     Set MouseY=25
  5876.  
  5877.    See Also: MouseHorizontal, MouseVertical
  5878.  
  5879.    Category: MouseControl
  5880.  
  5881.    MouseHorizontal (Number)
  5882.    MouseHorizontal (Number)
  5883.    MouseHorizontal (Number)
  5884.    Controls the horizontal sensitivity of the mouse. The larger the number,
  5885.    the less sensitive the mouse. Default is 25.
  5886.  
  5887.    See Also: MouseVertical, Mouse
  5888.  
  5889.    Category: MouseControl
  5890.  
  5891.    MouseVertical (Number)
  5892.    MouseVertical (Number)
  5893.    MouseVertical (Number)
  5894.    Controls the vertical sensitivity of the mouse. The larger the number,
  5895.    the less sensitive the mouse. Default is 15.
  5896.  
  5897.    See Also: MouseHorizontal, Mouse
  5898.  
  5899.    Category: MouseControl
  5900.  
  5901.    MoveWindow (Horizontal,Vertical)
  5902.    MoveWindow (Horizontal,Vertical)
  5903.    MoveWindow (Horizontal,Vertical)
  5904.    Moves top window. If (Horizontal) is negative motion is left. If
  5905.    <Vertical> is negative, motion is up.
  5906.  
  5907.     Example:
  5908.       MoveWindow -3 4 ;moves window 3 spaces left and 4 down
  5909.  
  5910.    Category: Display
  5911.  
  5912.  
  5913.  
  5914.    Computer Tyme MarxMenu Users Manual                     Page 89
  5915.    _______________________________________________________________
  5916.  
  5917.  
  5918.    MxCmd : String
  5919.    MxCmd : String
  5920.    MxCmd : String
  5921.    This is an internal string variable that it written to the environment
  5922.    variable MXCMD. This variable can be written to control what MarxMenu
  5923.    will write to the Shell Environment. If this variable is written to, it
  5924.    overrides anything that MarxMenu automatically writes.
  5925.  
  5926.     Example:
  5927.       OnKey 'A'
  5928.         |MxCmd = 'SHUTDOWN.BAT'
  5929.         |ExitMenu
  5930.  
  5931.    Category: Environment, String, Execution
  5932.  
  5933.    NamePart (String) : String
  5934.    NamePart (String) : String
  5935.    NamePart (String) : String
  5936.    Returns the name part of a file name.
  5937.  
  5938.     Example:
  5939.       NamePart ('C:\MARX\MARXMENU.EXE') ;returns MARXMENU
  5940.  
  5941.    See Also: Extension, PathPart, FilePart
  5942.  
  5943.    Category: String
  5944.  
  5945.    NetworkVersion : Boolean
  5946.    NetworkVersion : Boolean
  5947.    NetworkVersion : Boolean
  5948.    Returns true if you are running the network version of MarxMenu.
  5949.  
  5950.    Category: Misc
  5951.  
  5952.    NextWord (String) : String
  5953.    NextWord (String) : String
  5954.    NextWord (String) : String
  5955.    This command returns the next logical word of a string variable and
  5956.    removes the string from the original string.
  5957.  
  5958.     Example:
  5959.       StringA = 'one two three'
  5960.       StringB = NextWord(StringA)
  5961.  
  5962.       StringB contains 'one'
  5963.       StringA contains 'two three'
  5964.  
  5965.    Category: String
  5966.  
  5967.    No : Boolean
  5968.    No : Boolean
  5969.    No : Boolean
  5970.    Returns the boolean false.
  5971.  
  5972.    Category: Boolean
  5973.  
  5974.  
  5975.  
  5976.    Computer Tyme MarxMenu Users Manual                     Page 90
  5977.    _______________________________________________________________
  5978.  
  5979.  
  5980.    NoBoxBorder
  5981.    NoBoxBorder
  5982.    NoBoxBorder
  5983.    Use this command if you don't want a border around the menus.
  5984.  
  5985.    See Also: SingleLineBox, DoubleLineBox, BlockBox, CustomBox
  5986.  
  5987.    Category: Display
  5988.  
  5989.    NoExit
  5990.    NoExit
  5991.    NoExit
  5992.    Prevents ESC key from allowing you to exit menu. To exit, you must
  5993.    execute the ExitMenu command. This could be password protected.
  5994.  
  5995.    See Also: ExitMenu
  5996.  
  5997.    Category: Execution
  5998.  
  5999.    Not : Operator
  6000.    Not : Operator
  6001.    Not : Operator
  6002.    Returns logical Not if operators are boolean; or bitwise Not if
  6003.    operators are numeric.
  6004.  
  6005.    Category: Math, Boolean
  6006.  
  6007.    NotesLeft : Num
  6008.    NotesLeft : Num
  6009.    NotesLeft : Num
  6010.    NotesLeft returns the number of notes left in the music buffer to play.
  6011.    The music buffer is self adjusting and can store days worth of music.
  6012.  
  6013.    Category: Music
  6014.  
  6015.    NotesPlayed : Num
  6016.    NotesPlayed : Num
  6017.    NotesPlayed : Num
  6018.    Returns the number of notes played. If NotesLeft ever reaches 0,
  6019.    NotesPlayed also is set to 0.
  6020.  
  6021.    Category: Music
  6022.  
  6023.    Nov : Number
  6024.    Nov : Number
  6025.    Nov : Number
  6026.    November, Returns the number 11.
  6027.  
  6028.    Category: Time
  6029.  
  6030.    NovAccountExpDate (UserName) : Date
  6031.    NovAccountExpDate (UserName) : Date
  6032.    NovAccountExpDate (UserName) : Date
  6033.    Returns the Novell account expiration date. You must be logged in to be
  6034.    able to read this.
  6035.  
  6036.     Example:
  6037.        DaysToExpire = NovAccountExpDate(UserName) - Today / SecondsInDay
  6038.  
  6039.    Category: Novell, Time
  6040.  
  6041.  
  6042.  
  6043.    Computer Tyme MarxMenu Users Manual                     Page 91
  6044.    _______________________________________________________________
  6045.  
  6046.  
  6047.    NovAttach (Server)
  6048.    NovAttach (Server)
  6049.    NovAttach (Server)
  6050.    NovAttach is used to create a software link between you and a server,
  6051.    usually a second server. It must be followed by a NovLogin command to
  6052.    log you into the server.
  6053.  
  6054.    See Also: NovDetach
  6055.  
  6056.    Category: Novell
  6057.  
  6058.    NovChangePassword (OldPassword,NewPassword)
  6059.    NovChangePassword (OldPassword,NewPassword)
  6060.    NovChangePassword (OldPassword,NewPassword)
  6061.    Changes the novell users password from OldPassword to NewPassword.
  6062.  
  6063.    Category: Novell
  6064.  
  6065.    NovCloseSemaphore (Name)
  6066.    NovCloseSemaphore (Name)
  6067.    NovCloseSemaphore (Name)
  6068.    This closes semaphore Name. If there are no other users using this
  6069.    semaphore, it is deleted.
  6070.  
  6071.    Category: Novell
  6072.  
  6073.    NovConnection : Number
  6074.    NovConnection : Number
  6075.    NovConnection : Number
  6076.    This returns the logical connection number to the network. A zero
  6077.    indicates that you are not connected.
  6078.  
  6079.    Category: Novell
  6080.  
  6081.    NovConsoleOperator : Boolean
  6082.    NovConsoleOperator : Boolean
  6083.    NovConsoleOperator : Boolean
  6084.    This returns true if the user has Console Operator priviledges. This can
  6085.    come in handy when you are trying to determine who gets access to the
  6086.    command line.
  6087.  
  6088.    Category: Novell
  6089.  
  6090.    NovDefaultServer : String
  6091.    NovDefaultServer : String
  6092.    NovDefaultServer : String
  6093.    Returns the name of the default file server.
  6094.  
  6095.    Category: Novell
  6096.  
  6097.    NovDetach (Server)
  6098.    NovDetach (Server)
  6099.    NovDetach (Server)
  6100.    This is used to drop the connection to a server.
  6101.  
  6102.    See Also: NovAttach
  6103.  
  6104.    Category: Novell
  6105.  
  6106.    NovGroupsMembers (Group,Array)
  6107.    NovGroupsMembers (Group,Array)
  6108.    NovGroupsMembers (Group,Array)
  6109.    This reads all the members of Group and puts them into an array.
  6110.  
  6111.    Category: Novell, Array
  6112.  
  6113.  
  6114.  
  6115.    Computer Tyme MarxMenu Users Manual                     Page 92
  6116.    _______________________________________________________________
  6117.  
  6118.  
  6119.    NovGroups (Array)
  6120.    NovGroups (Array)
  6121.    NovGroups (Array)
  6122.    Fills array with list of all groups.
  6123.  
  6124.    See Also: NovUsersLoggedIn, NovUsers, NovPrintQueues, NovServers
  6125.  
  6126.    Category: Novell
  6127.  
  6128.    NovInGroup (Group) : Boolean
  6129.    NovInGroup (Group) : Boolean
  6130.    NovInGroup (Group) : Boolean
  6131.    Return true if you are in the group.
  6132.  
  6133.    Category: Novell
  6134.  
  6135.    NovLogin (Name,Password)
  6136.    NovLogin (Name,Password)
  6137.    NovLogin (Name,Password)
  6138.    This logs you into a file server. It is different than the Novell's
  6139.    login program in that it doesn't execute any login scripts. It merely
  6140.    gets you in. You can include the preferred server with the name.
  6141.  
  6142.     Example:
  6143.        NovLogin ('MARC','PASSWORD')
  6144.  
  6145.    The variable NovResult is set to 0 if sucessful.
  6146.  
  6147.    Note: If you are using Netware 3.0 or 3.1 you will have to go to the
  6148.    server console and type:
  6149.  
  6150.     SET ALLOW UNENCRYPTED PASSWORDS = ON
  6151.  
  6152.    Category: Novell
  6153.  
  6154.    NovLoginName (Connection) : String
  6155.    NovLoginName (Connection) : String
  6156.    NovLoginName (Connection) : String
  6157.    This returns the login name of the user at any specified connection.
  6158.    This can also be used to see who else is on the network.
  6159.  
  6160.    Category: Novell
  6161.  
  6162.    NovLogout
  6163.    NovLogout
  6164.    NovLogout
  6165.    This logs you off the server. Warning! Make sure that you are running
  6166.    MarxMenu from a local drive and not the server you are logging out of.
  6167.    MarxMenu needs access to overlays within MARXMENU.EXE and a Logout can
  6168.    cut off access. This command automatically runs FixPath.
  6169.  
  6170.    See Also: FixPath, Logoff, LogoffTime
  6171.  
  6172.    Category: Novell
  6173.  
  6174.  
  6175.  
  6176.    Computer Tyme MarxMenu Users Manual                     Page 93
  6177.    _______________________________________________________________
  6178.  
  6179.  
  6180.    NovMapDrive (Drive,Directory)
  6181.    NovMapDrive (Drive,Directory)
  6182.    NovMapDrive (Drive,Directory)
  6183.    This will map a drive letter to a directory like the Novell MAP
  6184.    command does. You may specify volume names and server names.
  6185.  
  6186.     Example:
  6187.       NovMapDrive ('J','TYME2/SYS:PUBLIC\DOS')
  6188.  
  6189.    Mapping a drive to a nul string ('') deletes the drive map.
  6190.  
  6191.    Category: Novell
  6192.  
  6193.    NovMyLoginName : String
  6194.    NovMyLoginName : String
  6195.    NovMyLoginName : String
  6196.    This returns the login name of the user.
  6197.  
  6198.    Category: Novell
  6199.  
  6200.    NovMyPassword (Password) : Boolean
  6201.    NovMyPassword (Password) : Boolean
  6202.    NovMyPassword (Password) : Boolean
  6203.    Novell won't let you read the password, but it will let you guess and
  6204.    tell you if you're right. This routine returns true if the password
  6205.    passed is the correct password.
  6206.  
  6207.    Category: Novell
  6208.  
  6209.    NovOpenSemaphore (Name,Value)
  6210.    NovOpenSemaphore (Name,Value)
  6211.    NovOpenSemaphore (Name,Value)
  6212.    This opens semaphore Name and assigns it an initial value. If the
  6213.    semaphore already exists, it does nothing.
  6214.  
  6215.    Category: Novell
  6216.  
  6217.    NovPasswordExpDate (UserName) : Date
  6218.    NovPasswordExpDate (UserName) : Date
  6219.    NovPasswordExpDate (UserName) : Date
  6220.    Returns the Novell password expiration date. You must be logged in to be
  6221.    able to read this.
  6222.  
  6223.     Example:
  6224.        DaysToExpire = NovPasswordExpDate(UserName) - Today / SecondsInDay
  6225.  
  6226.    Category: Novell, Time
  6227.  
  6228.    NovPreferredServer : String
  6229.    NovPreferredServer : String
  6230.    NovPreferredServer : String
  6231.    Returns the name of the preferred file server. This is set with the
  6232.    NovSetPreferredServer command.
  6233.  
  6234.    Category: Novell
  6235.  
  6236.    NovPrimaryServer : String
  6237.    NovPrimaryServer : String
  6238.    NovPrimaryServer : String
  6239.    Returns the name of the primary file server. This is the one you first
  6240.    logged into.
  6241.  
  6242.    Category: Novell
  6243.  
  6244.  
  6245.  
  6246.    Computer Tyme MarxMenu Users Manual                     Page 94
  6247.    _______________________________________________________________
  6248.  
  6249.  
  6250.    NovPrintQueues (Array)
  6251.    NovPrintQueues (Array)
  6252.    NovPrintQueues (Array)
  6253.    Fills array with list of all print Queues.
  6254.  
  6255.    See Also: NovUsersLoggedIn, NovUsers, NovGroups, NovServers
  6256.  
  6257.    Category: Novell, Array, Printer
  6258.  
  6259.    NovReadGroups (Name,Array)
  6260.    NovReadGroups (Name,Array)
  6261.    NovReadGroups (Name,Array)
  6262.    This reads all the groups that Name belongs to and puts them into an
  6263.    array.
  6264.  
  6265.    Category: Novell, Array
  6266.  
  6267.    NovReadSecurityEquals (Name,Array)
  6268.    NovReadSecurityEquals (Name,Array)
  6269.    NovReadSecurityEquals (Name,Array)
  6270.    This reads all the security equivalences that Name belongs to and puts
  6271.    them into an array. (This includes groups).
  6272.  
  6273.    Category: Novell, Array
  6274.  
  6275.    NovResult : Number
  6276.    NovResult : Number
  6277.    NovResult : Number
  6278.    NovResult is a variable like FileResult that returns the success status
  6279.    of the previous Novell system call. A zero generally indicates success.
  6280.  
  6281.    Category: Novell
  6282.  
  6283.    NovSemaphoreTimeOut
  6284.    NovSemaphoreTimeOut
  6285.    NovSemaphoreTimeOut
  6286.    This variable controls the amount of time (in 1/18 seconds) that
  6287.    MarxMenu will wait for the value of a semaphore to become not negative.
  6288.    The initial value is 50.
  6289.  
  6290.    Category: Novell
  6291.  
  6292.    NovSemaphoreUsers (Name) : Number
  6293.    NovSemaphoreUsers (Name) : Number
  6294.    NovSemaphoreUsers (Name) : Number
  6295.    This returns the number of users that have the semaphore open.
  6296.  
  6297.    Category: Novell
  6298.  
  6299.    NovSemaphoreValue (Name) : Number
  6300.    NovSemaphoreValue (Name) : Number
  6301.    NovSemaphoreValue (Name) : Number
  6302.    This returns the value of a semaphore.
  6303.  
  6304.    Category: Novell
  6305.  
  6306.    NovServers (Array)
  6307.    NovServers (Array)
  6308.    NovServers (Array)
  6309.    This command returns a string array of the file servers you are
  6310.    connected to.
  6311.  
  6312.    Category: Novell, Array
  6313.  
  6314.  
  6315.  
  6316.    Computer Tyme MarxMenu Users Manual                     Page 95
  6317.    _______________________________________________________________
  6318.  
  6319.  
  6320.    NovScanProperties (Array, Object, ObjectType)
  6321.    NovScanProperties (Array, Object, ObjectType)
  6322.    NovScanProperties (Array, Object, ObjectType)
  6323.    NovScanProperties reads the properties (not the values) into an array.
  6324.    You also have to pass the object type.
  6325.  
  6326.     Novell Object Types:
  6327.       1 - User
  6328.       2 - Group
  6329.       3 - Print Queue
  6330.       4 - File Server
  6331.       5 - Job Server
  6332.       6 - Gateway
  6333.       7 - Print Server
  6334.  
  6335.     Example:
  6336.       var Properties
  6337.       NovScanProperties (Properties,NovMyLoginName,1)
  6338.  
  6339.       Loop NumberOfElements(Properties)
  6340.          Writeln(Properties[LoopIndex])
  6341.       EndLoop
  6342.  
  6343.  
  6344.    Category: Novell, Array
  6345.  
  6346.    NovSetPreferredServer (Server)
  6347.    NovSetPreferredServer (Server)
  6348.    NovSetPreferredServer (Server)
  6349.    Sets the preferred file server. Passing a '' will switch you back to the
  6350.    default or primary file server.
  6351.  
  6352.    See Also: NovSetPrimaryServer
  6353.  
  6354.    Category: Novell
  6355.  
  6356.    NovSetPrimaryServer (Server)
  6357.    NovSetPrimaryServer (Server)
  6358.    NovSetPrimaryServer (Server)
  6359.    The primary file server is the one that execures your login scripts. It
  6360.    can also be set using the NovSetPrimaryServer command.
  6361.  
  6362.    See Also: NovSetPreferredServer
  6363.  
  6364.    Category: Novell
  6365.  
  6366.    NovSignalSemaphore (Name)
  6367.    NovSignalSemaphore (Name)
  6368.    NovSignalSemaphore (Name)
  6369.    This increments the value of a semaphore. It is used to indicate that
  6370.    you are done with a resource and makes it available for the next user.
  6371.  
  6372.    Category: Novell
  6373.  
  6374.  
  6375.  
  6376.    Computer Tyme MarxMenu Users Manual                     Page 96
  6377.    _______________________________________________________________
  6378.  
  6379.  
  6380.    NovStationAddress (Connection) : String
  6381.    NovStationAddress (Connection) : String
  6382.    NovStationAddress (Connection) : String
  6383.    This returns the stations internetwork address at connection.
  6384.  
  6385.     Example:
  6386.       NovStationAddress (NovConnection)
  6387.          Returns the address of the users workstation.
  6388.  
  6389.       NovStationAddress (1)
  6390.          Returns the address of station 1.
  6391.  
  6392.       254:41 where 254 is the network number and 41 is the node number.
  6393.  
  6394.    Category: Novell
  6395.  
  6396.    NovUserInGroup (Name,Group) : Boolean
  6397.    NovUserInGroup (Name,Group) : Boolean
  6398.    NovUserInGroup (Name,Group) : Boolean
  6399.    This is used to test if other users are in a group. Returns true is the
  6400.    specified user is in the specified group.
  6401.  
  6402.    Category: Novell
  6403.  
  6404.    NovUsers (Array)
  6405.    NovUsers (Array)
  6406.    NovUsers (Array)
  6407.    Fills array with list of all users.
  6408.  
  6409.    See Also: NovUsersLoggedIn, NovGroups, NovPrintQueues, NovServers
  6410.  
  6411.    Category: Novell, Array
  6412.  
  6413.    NovUsersLoggedIn (Array)
  6414.    NovUsersLoggedIn (Array)
  6415.    NovUsersLoggedIn (Array)
  6416.    Fills array with list of all users that are currently logged in.
  6417.  
  6418.    See Also: NovUsers, NovGroups, NovPrintQueues, NovServers
  6419.  
  6420.    Category: Novell, Array
  6421.  
  6422.    NovWaitOnSemaphore (Name) : Boolean
  6423.    NovWaitOnSemaphore (Name) : Boolean
  6424.    NovWaitOnSemaphore (Name) : Boolean
  6425.    This decrements the value of a semaphore and if the value is zero or
  6426.    more, returns true. If the value of the semaphore is negative, it
  6427.    returns false. This is used to indicate that you are out of whatever you
  6428.    are testing for.
  6429.  
  6430.    Category: Novell
  6431.  
  6432.    NumberOfElememts (array) : Number
  6433.    NumberOfElememts (array) : Number
  6434.    NumberOfElememts (array) : Number
  6435.    This function returns the number of elements in the array.
  6436.  
  6437.    Category: Array
  6438.  
  6439.  
  6440.  
  6441.    Computer Tyme MarxMenu Users Manual                     Page 97
  6442.    _______________________________________________________________
  6443.  
  6444.  
  6445.    Now : Date
  6446.    Now : Date
  6447.    Now : Date
  6448.    Returns the current moment as a date.
  6449.  
  6450.    Category: Time
  6451.  
  6452.    NumLock : Boolean
  6453.    NumLock : Boolean
  6454.    NumLock : Boolean
  6455.    Returns true if Num Lock is on. This command can also set the Num Lock
  6456.    on and off.
  6457.  
  6458.     Example:
  6459.       if NumLock then Write 'NumLock is On'
  6460.  
  6461.       NumLock On  ;Turns NumLock On
  6462.       NumLock Off ;Turns NumLock Off
  6463.  
  6464.       NumLock (by itself) turns NumLock On.
  6465.  
  6466.    See Also: CapsLock, ScrollLock
  6467.  
  6468.    Category: System
  6469.  
  6470.    Oct : Number
  6471.    Oct : Number
  6472.    Oct : Number
  6473.    October, Returns the number 10.
  6474.  
  6475.    Category: Time
  6476.  
  6477.    Off : Boolean
  6478.    Off : Boolean
  6479.    Off : Boolean
  6480.    Returns False.
  6481.  
  6482.    Category: Boolean
  6483.  
  6484.    On : Boolean
  6485.    On : Boolean
  6486.    On : Boolean
  6487.    Returns True.
  6488.  
  6489.    Category: Boolean
  6490.  
  6491.  
  6492.  
  6493.    Computer Tyme MarxMenu Users Manual                     Page 98
  6494.    _______________________________________________________________
  6495.  
  6496.  
  6497.    OnKey (char)
  6498.    OnKey (char)
  6499.    OnKey (char)
  6500.    When char is selected, the line(s) following are executed up to the next
  6501.    OnKey or end of file. This means that they are written to a BATCH file.
  6502.  
  6503.     Example:
  6504.       Onkey 'W'
  6505.       cd\wordstar
  6506.       ws
  6507.       cd\menu
  6508.  
  6509.    In the above example if 'W' is selected, MarxMenu will create a
  6510.    temporary batch file containing all the lines under the OnKey command.
  6511.    All the lines under an OnKey are written literally to the batch file
  6512.    with few exceptions. All leading and trailing blanks are stripped.
  6513.    String variables are evaluated and their value passed if the name of the
  6514.    string variable starts with a '%'.
  6515.  
  6516.    If a line begins with a '|' (vertical bar), the line is interpreted
  6517.    rather than written to a batch file. If a '^Label' is used under an
  6518.    OnKey, a jump is made to the 'Label' and interpretation is resumed. This
  6519.    is commonly used to jump to a submenu.
  6520.  
  6521.    Any OnKey statement that causes a batch file to be written to will cause
  6522.    the menu to exit. MarxMenu normally will exit with ErrorLevel 0 unless
  6523.    an ExitCode is set.
  6524.  
  6525.    The first blank line under an OnKey ends what that OnKey command does.
  6526.  
  6527.    Category: Conditional
  6528.  
  6529.    OnScreenOnly (On/Off)
  6530.    OnScreenOnly (On/Off)
  6531.    OnScreenOnly (On/Off)
  6532.    This allows you to restrict selections to only what is actually on the
  6533.    screen. Hidden OnKey commands will not execute if this is set on. This
  6534.    allows you to limit user selection to the choices on the screen.
  6535.  
  6536.    See Also: OnKey
  6537.  
  6538.    Category: Conditional
  6539.  
  6540.  
  6541.  
  6542.    Computer Tyme MarxMenu Users Manual                     Page 99
  6543.    _______________________________________________________________
  6544.  
  6545.  
  6546.    OpenPrinter
  6547.    OpenPrinter
  6548.    OpenPrinter
  6549.    This command opens the printer device. It is not necessary to use this
  6550.    command in that it is done automatically whenever you print. But, if you
  6551.    are running under a multitasking shell like Windows, it will reserve the
  6552.    printer for your task.
  6553.  
  6554.    If the printer is locked, or if you have specified a file name that
  6555.    can't be created, the variable FileResult will contain the DOS error
  6556.    code (usually 5 for access denied). A FileResult of 0 indicates success.
  6557.  
  6558.    See Also: ClosePrinter, FileResult
  6559.  
  6560.    Category: Printer
  6561.  
  6562.    OptionSwitch (String1,String2) : Boolean
  6563.    OptionSwitch (String1,String2) : Boolean
  6564.    OptionSwitch (String1,String2) : Boolean
  6565.    This command tests if String1 contains the option switch String2. If it
  6566.    does, it will remove the switch from String1.
  6567.  
  6568.     Example:
  6569.       String1 = 'Test /A/B/C'
  6570.       HasB = OptionSwitch(String1,'B')
  6571.  
  6572.     HasB will be true.
  6573.     String1 will contain 'Test /A/C'
  6574.  
  6575.    Category: String
  6576.  
  6577.    Or : Operator
  6578.    Or : Operator
  6579.    Or : Operator
  6580.    Returns logical Or if operators are boolean; or bitwise Or if operators
  6581.    are numeric.
  6582.  
  6583.    Category: Math, Boolean
  6584.  
  6585.    Ord (Char) : Number
  6586.    Ord (Char) : Number
  6587.    Ord (Char) : Number
  6588.    Returns the numeric value of an ascii character.
  6589.  
  6590.    Category: String
  6591.  
  6592.    OverKey : String
  6593.    OverKey : String
  6594.    OverKey : String
  6595.    When using UseArrows, OverKey returns the character that selects the
  6596.    item that the inverse bar is over.
  6597.  
  6598.    This can be used with IdelProgram to display context sensitive help as
  6599.    you move the inverse bar over different selections.
  6600.  
  6601.    Category: String
  6602.  
  6603.  
  6604.  
  6605.    Computer Tyme MarxMenu Users Manual                     Page 100
  6606.    _______________________________________________________________
  6607.  
  6608.  
  6609.    OverLay (MenuName)
  6610.    OverLay (MenuName)
  6611.    OverLay (MenuName)
  6612.    Overlay loads another menu as if that menu were a procedure of the
  6613.    current menu. After the overlaid menu exits, control is returned to the
  6614.    calling menu at the next line after the overlay command.
  6615.  
  6616.    Like the Chain command, Overlay is very fast and doesn't require
  6617.    MarxMenu to be reloaded.
  6618.  
  6619.     Example:
  6620.       Overlay 'SUBMENU'
  6621.  
  6622.    When using overlays, all variables declared as shared are accessable to
  6623.    the main program and all overlays. The shared variables have to be the
  6624.    same for all overlays.
  6625.  
  6626.    See Also: Shared, Chain
  6627.  
  6628.    Category: Execution
  6629.  
  6630.    ParallelPorts : Number
  6631.    ParallelPorts : Number
  6632.    ParallelPorts : Number
  6633.    Returns number of parallel ports.
  6634.  
  6635.    Category: System
  6636.  
  6637.    ParamStr (Num) : String
  6638.    ParamStr (Num) : String
  6639.    ParamStr (Num) : String
  6640.    Returns the DOS parameter string from the command line. The 0 parameter
  6641.    is MARXMENU.EXE. The 1 parameter is the name of the menu file you are
  6642.    using. This is like the %1 %2 %3 ... in batch file parameters.
  6643.  
  6644.    Category: String
  6645.  
  6646.    ParentEnvironment
  6647.    ParentEnvironment
  6648.    ParentEnvironment
  6649.    ParentEnvironment selects the parent environment for use with
  6650.    environment access commands.
  6651.  
  6652.    See Also: ReadEnv SetEnv ReadEnvironment ShellEnvironment
  6653.    See Also: CurrentEnvironment MasterEnvironment
  6654.  
  6655.    Category: Environment
  6656.  
  6657.  
  6658.  
  6659.    Computer Tyme MarxMenu Users Manual                     Page 101
  6660.    _______________________________________________________________
  6661.  
  6662.  
  6663.    Password (Pswd,column,row)
  6664.    Password (Pswd,column,row)
  6665.    Password (Pswd,column,row)
  6666.    This command opens up a password box at row and column. The user must
  6667.    type the password correctly before the command will execute. The
  6668.    password is case sensitive.
  6669.  
  6670.     Example:
  6671.       OnKey 'X'
  6672.          |PassWord('shell',4,3)
  6673.          COMMAND.COM
  6674.  
  6675.    Category: Conditional
  6676.  
  6677.    Path : String
  6678.    Path : String
  6679.    Path : String
  6680.    Returns the current path.
  6681.  
  6682.    Category: String
  6683.  
  6684.    PathPart (String) : String
  6685.    PathPart (String) : String
  6686.    PathPart (String) : String
  6687.    Returns the path part of a file name.
  6688.  
  6689.     Example:
  6690.       PathPart ('C:\MARX\MARXMENU.EXE') ;returns C:\MARX
  6691.  
  6692.    See Also: Extension, NamePart, FilePart
  6693.  
  6694.    Category: String
  6695.  
  6696.    PauseAfterExecute (On/Off)
  6697.    PauseAfterExecute (On/Off)
  6698.    PauseAfterExecute (On/Off)
  6699.    If on, this command causes the message "Press any key to return to
  6700.    MarxMenu..." to appear after an execute command is executed.
  6701.  
  6702.    See Also: Execute:
  6703.  
  6704.    Category: Execution
  6705.  
  6706.    Pi : Real
  6707.    Pi : Real
  6708.    Pi : Real
  6709.    Returns the value of Pi to 18 digits.
  6710.  
  6711.    Category: Math, Float
  6712.  
  6713.  
  6714.  
  6715.    Computer Tyme MarxMenu Users Manual                     Page 102
  6716.    _______________________________________________________________
  6717.  
  6718.  
  6719.    PickFile (FileSpec,column,row,height) : String
  6720.    PickFile (FileSpec,column,row,height) : String
  6721.    PickFile (FileSpec,column,row,height) : String
  6722.    Allows you to display a directory of files on the screen from a menu.
  6723.    Normally used to display a list of files for the user to choose from.
  6724.    Could be used in a command to load a word processor or database. Allows
  6725.    selection of the file to be loaded by the word processor or database
  6726.    program. The filename can be passed to a percent variable placed in the
  6727.    batch file executing the application. See example files on MarxMenu
  6728.    distribution disk.
  6729.  
  6730.     Example: %FileName = PickFile('C:\WORDSTAR\*.DOC',3,4,17)
  6731.  
  6732.    Notice: The use of a variable with a name that starts with a '%' allows
  6733.    the choice to be passed to a batch file for execution.
  6734.  
  6735.    The three numbers represent the column and row of the upper left corner
  6736.    of the box and the height of the box. All DrawBox commands can be used
  6737.    here to control the looks of the PickFile window. This includes the
  6738.    BoxHeader command.
  6739.  
  6740.    Category: String
  6741.  
  6742.    PickMany(SourceArray,DestinationArray)
  6743.    PickMany(SourceArray,DestinationArray)
  6744.    PickMany(SourceArray,DestinationArray)
  6745.    PickMany displays a string array in the current window and allows you to
  6746.    choose as many lines as you want. The chosen lines go into
  6747.    DestinationArray.
  6748.  
  6749.    When the window appears, the space bar toggles the marked status of the
  6750.    line. The right arrow sets the marked status and the left arrow resets
  6751.    the marked status. Ctrl-Right-Arrow marks all lines, Ctrl-Left-Arrow
  6752.    unmarks all lines. The return key accepts the selection and exits. The
  6753.    ESC key aborts.
  6754.  
  6755.    If using a mouse, the left button toggles the mark on the current line.
  6756.    The right button accepts and exits.
  6757.  
  6758.    If no selections are made, the DestinationArray is empty. If ESC is
  6759.    pressed, the DestinationArray is left unchanged. You can test LastKey to
  6760.    see what was pressed.
  6761.  
  6762.    Category: String, Array
  6763.  
  6764.    PickOne (Array) : String
  6765.    PickOne (Array) : String
  6766.    PickOne (Array) : String
  6767.    This command displays an array in the current window and lets you pick a
  6768.    line and returns the chosen line.
  6769.  
  6770.    Category: String, Array
  6771.  
  6772.  
  6773.  
  6774.    Computer Tyme MarxMenu Users Manual                     Page 103
  6775.    _______________________________________________________________
  6776.  
  6777.  
  6778.    PickPosition : Number
  6779.    PickPosition : Number
  6780.    PickPosition : Number
  6781.    The variable PickPosition works with the PickOne command. PickPosition
  6782.    returns the number of which element in the array was picked.
  6783.  
  6784.    Category: String, Array
  6785.  
  6786.    Port (number) : Number
  6787.    Port (number) : Number
  6788.    Port (number) : Number
  6789.    Returns the value at the port or writes a number to a port.
  6790.  
  6791.     Example:
  6792.       X = Port(20)   ;Reads port 20 into X
  6793.       Port(20 = X    ;Writes X to Port 20
  6794.  
  6795.    Category: Memory
  6796.  
  6797.    Pos (substring,string) : Number
  6798.    Pos (substring,string) : Number
  6799.    Pos (substring,string) : Number
  6800.    Finds position of substring in string. If substring isn't found, Pos
  6801.    returns 0.
  6802.  
  6803.     Example:
  6804.        pos('CD','ABCDE') returns 2
  6805.  
  6806.    Category: String
  6807.  
  6808.    Power (Real,Real) : Real
  6809.    Power (Real,Real) : Real
  6810.    Power (Real,Real) : Real
  6811.    Raises a real to a given power.
  6812.  
  6813.    Category: Math, Float
  6814.  
  6815.    Pred (number) : Number
  6816.    Pred (number) : Number
  6817.    Pred (number) : Number
  6818.    Returns number minus 1.
  6819.  
  6820.    Category: Math
  6821.  
  6822.    Print (string)
  6823.    Print (string)
  6824.    Print (string)
  6825.    Prints string to the printer with no CR or LF. If there is an error
  6826.    printing, the error is returned in FileResult.
  6827.  
  6828.    Category: Printer
  6829.  
  6830.    PrinterName (string)
  6831.    PrinterName (string)
  6832.    PrinterName (string)
  6833.    Sets the file name for the printer to use. The default name is PRN.
  6834.    Other common printer names include: LPT1, LPT2, LPT3, and AUX. You can
  6835.    also use filenames to direct printer output to a file.
  6836.  
  6837.    See Also: ClosePrinter
  6838.  
  6839.    Category: Printer
  6840.  
  6841.  
  6842.  
  6843.    Computer Tyme MarxMenu Users Manual                     Page 104
  6844.    _______________________________________________________________
  6845.  
  6846.  
  6847.    Println (String)
  6848.    Println (String)
  6849.    Println (String)
  6850.    Prints string to the printer with CR and LF.
  6851.  
  6852.    See Also: Print
  6853.  
  6854.    Category: Printer
  6855.  
  6856.    PrintScreen (On/Off)
  6857.    PrintScreen (On/Off)
  6858.    PrintScreen (On/Off)
  6859.    Turns the print screen function on and off. Turning the print screen off
  6860.    disables the print screen key. This can be used to prevent a computer
  6861.    from locking up when the user kits the Print Screen key with no printer
  6862.    attached.
  6863.  
  6864.    Category: Printer
  6865.  
  6866.    Procedure (name)
  6867.    Procedure (name)
  6868.    Procedure (name)
  6869.    This word begins the definition of a newly named procedure. A procedure
  6870.    is like a subroutine. Once the procedure is defined, all you have to do
  6871.    to call the procedure is use its name. The procedure definition is
  6872.    terminated by the command EndProc.
  6873.  
  6874.     Example:
  6875.  
  6876.     Procedure SelectFile
  6877.       BoxHeaderColor ForeColor BackColor
  6878.       BoxBorderColor Cyan Mag
  6879.       BoxInsideColor Yellow Mag
  6880.       InverseColor Yellow Red
  6881.       %ExecSt = PickFile FileType 4 5 17
  6882.     EndProc
  6883.  
  6884.    Whenever we use the word SelectFile in the menu, all the lines of the
  6885.    procedure SelectFile will execute.
  6886.  
  6887.    See Also: EndProc, Return
  6888.  
  6889.    Category: Misc
  6890.  
  6891.    PullMenu (on/off)
  6892.    PullMenu (on/off)
  6893.    PullMenu (on/off)
  6894.    Controls the behavior of pull down menus. Set to on if using
  6895.    them. Default is Off.
  6896.  
  6897.    Category: Display
  6898.  
  6899.    Qualifier
  6900.    Qualifier
  6901.    Qualifier
  6902.    Used to create qualifiers.
  6903.  
  6904.    See Also: Var, Constant, Shared
  6905.  
  6906.    Category: Variable
  6907.  
  6908.  
  6909.  
  6910.    Computer Tyme MarxMenu Users Manual                     Page 105
  6911.    _______________________________________________________________
  6912.  
  6913.  
  6914.    Random : Number
  6915.    Random : Number
  6916.    Random : Number
  6917.    The Random command returns random numbers between 0 and +2,147,483,647.
  6918.    (2^31). The algorithm has been checked for good uniformity and takes
  6919.    advantage of re-seeding itself from random events like the timer
  6920.    interrupt and keyboard input.
  6921.  
  6922.    Category: Math
  6923.  
  6924.    ReadEnv (string) : String
  6925.    ReadEnv (string) : String
  6926.    ReadEnv (string) : String
  6927.    Returns the environment string specified.
  6928.  
  6929.     Example: PathString = ReadEnv('PATH')
  6930.  
  6931.    See Also: SetEnv ReadEnvironment ShellEnvironment
  6932.    See Also: CurrentEnvironment ParentEnvironment MasterEnvironment
  6933.  
  6934.    Category: Environment
  6935.  
  6936.    ReadEnvironment (array)
  6937.    ReadEnvironment (array)
  6938.    ReadEnvironment (array)
  6939.    Reads all environment variables into an array.
  6940.  
  6941.     Example:
  6942.       Var Env
  6943.       ReadEnvironment( Env )
  6944.         ;Env[1] will be the first environment string and
  6945.         ;Env[NumberOfElememts(Env)] will be the last. A variable that is
  6946.         ;set is LongestLine. LongestLine contains the length of the
  6947.         ;longest string variable read.
  6948.       Writeln( 'Your current environment variables are:' )
  6949.       Loop( NumberOfElements( Env ) )
  6950.         Writeln( Env[LoopIndex] )
  6951.       EndLoop
  6952.       Writeln
  6953.       Writeln('Your Environment Size is :',Str(EnvSize))
  6954.       Writeln('You are using            :',Str(EnvSize-EnvFree),' bytes.')
  6955.       Writeln('You have                 :,'Str(EnvFree),' bytes free.')
  6956.  
  6957.    See Also: SetEnv ReadEnv ShellEnvironment
  6958.    See Also: CurrentEnvironment ParentEnvironment MasterEnvironment
  6959.  
  6960.    Category: Environment, Array
  6961.  
  6962.  
  6963.  
  6964.    Computer Tyme MarxMenu Users Manual                     Page 106
  6965.    _______________________________________________________________
  6966.  
  6967.  
  6968.    ReadKey : String
  6969.    ReadKey : String
  6970.    ReadKey : String
  6971.    Returns the character that is input from the keyboard.
  6972.  
  6973.     Example:
  6974.       Var Key
  6975.  
  6976.       Repeat
  6977.         Writeln( 'Press the <ESC> key to exit this program.' )
  6978.         Key = ReadKey
  6979.       Until Key = Esc
  6980.  
  6981.    Category: Keyboard
  6982.  
  6983.    Readln : String
  6984.    Readln : String
  6985.    Readln : String
  6986.    Reads a string from the keyboard.
  6987.  
  6988.     Example:
  6989.       Customer.Name   = Readln
  6990.       Customer.Number = Value (Readln) ;Converts to an numerical value
  6991.       Customer.State  = UpperCase (ReadLn)
  6992.  
  6993.    Category: Keyboard, String
  6994.  
  6995.    ReadTextFile (FileName,Array)
  6996.    ReadTextFile (FileName,Array)
  6997.    ReadTextFile (FileName,Array)
  6998.    This command reads a text file into a string array. It also sets the
  6999.    variable LongestLine to the length of the longest line in the file.
  7000.  
  7001.     Example:
  7002.       Var Docs
  7003.  
  7004.       ReadTextFile('MARXMENU.DOC',Docs)
  7005.         ;After the read, Docs[1] becomes the first line of the file.
  7006.         ;Docs[NumberOfElements(Docs)] becomes the last line.
  7007.       Loop NumberOfElements(Docs)
  7008.           ; Convert each line to its uppercase equivalent
  7009.         Docs[LoopIndex] = UpperCase Docs[LoopIndex]
  7010.       EndLoop
  7011.         ;Save the newly formatted array
  7012.       WriteTextFile ('NEWMM.DOC',Docs)
  7013.  
  7014.    Do not use FileOpen with ReadTextFile.
  7015.  
  7016.    The power of the ReadTextFile and WriteTextFile have expanded. You can
  7017.    now load and save arrays of any variable types, multidimensional arrays,
  7018.    and mixed array types. This includes strings, numbers, and booleans.
  7019.    File variables are also stored. When a file variable is stored and
  7020.    reloaded the FileAssign command is not necessary.
  7021.  
  7022.    Category: File, Array
  7023.  
  7024.  
  7025.  
  7026.    Computer Tyme MarxMenu Users Manual                     Page 107
  7027.    _______________________________________________________________
  7028.  
  7029.  
  7030.    Real (Integer) : Real
  7031.    Real (Integer) : Real
  7032.    Real (Integer) : Real
  7033.    Returns the real equivalent of an integer.
  7034.  
  7035.    Category: Math, Float
  7036.  
  7037.    Reboot
  7038.    Reboot
  7039.    Reboot
  7040.    Causes the computer to do a warm reboot.
  7041.  
  7042.    Category: Execution
  7043.  
  7044.    Red : Number
  7045.    Red : Number
  7046.    Red : Number
  7047.    Returns the number 4.
  7048.  
  7049.    Category: Color
  7050.  
  7051.    ReleaseDate : String
  7052.    ReleaseDate : String
  7053.    ReleaseDate : String
  7054.    Returns the MarxMenu Release Date.
  7055.  
  7056.    Category: String
  7057.  
  7058.    Repeat
  7059.    Repeat
  7060.    Repeat
  7061.    Used for program control. Usage:
  7062.  
  7063.     REPEAT
  7064.        (statement)
  7065.        (statement)
  7066.     UNTIL (condition)
  7067.  
  7068.     Example:
  7069.       Var Key
  7070.  
  7071.       Repeat
  7072.         Key = ReadKey
  7073.         If Key = 'A'
  7074.           Bat( 'DOLIST.EXE' )
  7075.           ExitMenu
  7076.         EndIf
  7077.         If Key = F1 Then Help
  7078.       Until Key = Esc
  7079.  
  7080.    Category: Conditional
  7081.  
  7082.  
  7083.  
  7084.    Computer Tyme MarxMenu Users Manual                     Page 108
  7085.    _______________________________________________________________
  7086.  
  7087.  
  7088.    ResizeWindow (Horizontal Vertical)
  7089.    ResizeWindow (Horizontal Vertical)
  7090.    ResizeWindow (Horizontal Vertical)
  7091.    Changes the size of the top window. The horizontal and vertical numbers
  7092.    are added to the current size. Use negative numbers to shrink the
  7093.    window. The top left corner stays in the same place.
  7094.  
  7095.     Example:
  7096.       DrawBox 15 5 30 15
  7097.       ResizeWindow 15 5
  7098.  
  7099.    See Also: MoveWindow
  7100.  
  7101.    Category: Display
  7102.  
  7103.    Return (param,param,...)
  7104.    Return (param,param,...)
  7105.    Return (param,param,...)
  7106.    Exits a procedure and optionally returns parameters to the calling
  7107.    procedure. It can return as many parameters as you want as long as the
  7108.    calling program uses the same number of parameters. Otherwise, you will
  7109.    get an "Invalid number of parameters" error.
  7110.  
  7111.     Example:
  7112.  
  7113.     Procedure SmallRandomNumber
  7114.     {Returns a random number between 1 and 100}
  7115.     var SmallRand
  7116.        SmallRand = Random mod 100
  7117.        Return (SmallRand + 1)
  7118.     EndProc
  7119.  
  7120.    See Also: Procedure, EndProc
  7121.  
  7122.    Category: Misc
  7123.  
  7124.    ReturnCode : Number
  7125.    ReturnCode : Number
  7126.    ReturnCode : Number
  7127.    When you use the Execute function, a ReturnCode value is fed into this
  7128.    variable when you return to the menu. The code returned is the same as
  7129.    what the DOS ErrorLevel would be. This will not work if you use the
  7130.    UseCommand On function because COMMAND.COM would have been loaded and
  7131.    the returncode would be lost.
  7132.  
  7133.    Category: Execution
  7134.  
  7135.    Right (string,count) : String
  7136.    Right (string,count) : String
  7137.    Right (string,count) : String
  7138.    Returns right characters of string for length count.
  7139.  
  7140.     Example: Right('ABCDEF',3) returns 'DEF'
  7141.  
  7142.    Category: String
  7143.  
  7144.  
  7145.  
  7146.    Computer Tyme MarxMenu Users Manual                     Page 109
  7147.    _______________________________________________________________
  7148.  
  7149.  
  7150.    RollWindow (number)
  7151.    RollWindow (number)
  7152.    RollWindow (number)
  7153.    Windows can be looked at as a stack. RollWindow will roll a previous
  7154.    window to the top of the stack making the previous window the current
  7155.    window.
  7156.  
  7157.     Example:
  7158.         ;Make the Third window on the stack the active window
  7159.       RollWindow 3
  7160.         ;Write out message
  7161.       Writeln 'You have mail waiting!'
  7162.         ;Now put the windows back
  7163.       PushBackWindow (3)
  7164.  
  7165.       Procedure PushBackWindow (N)
  7166.  
  7167.       ;Will roll a window back to its original position on the stack
  7168.       ;The parameter should be the same as the parameter for the call
  7169.       ;to RollWindow. If you use RollWindow(3) then use PushBackWindow(3)
  7170.  
  7171.         Loop N
  7172.           RollWindow N
  7173.         EndLoop
  7174.       EndProc ;PushBackWindow
  7175.  
  7176.    See Also: CurrentWindow, SetTopWindow
  7177.  
  7178.    Category: Display
  7179.  
  7180.    Run variable (parameters)
  7181.    Run variable (parameters)
  7182.    Run variable (parameters)
  7183.    This runs a procedure that was stored in a variable.
  7184.  
  7185.     var Y
  7186.  
  7187.     Procedure WriteSquared (X)
  7188.        Writeln (X * X)
  7189.     EndProc
  7190.  
  7191.     Example:
  7192.        Y = Loc(WriteSquared)
  7193.        Run Y(3)   ; This will write a 9 on the screen
  7194.  
  7195.    Warning! Don't put the variable you are running in parentheses.
  7196.  
  7197.        Run (Y,3)  ; this won't work
  7198.  
  7199.    See Also: Loc
  7200.  
  7201.    Category: Misc
  7202.  
  7203.  
  7204.  
  7205.    Computer Tyme MarxMenu Users Manual                     Page 110
  7206.    _______________________________________________________________
  7207.  
  7208.  
  7209.    Sat : Number
  7210.    Sat : Number
  7211.    Sat : Number
  7212.    Saturday, Returns the number 6.
  7213.  
  7214.    Category: Time
  7215.  
  7216.    SavePosition (On/Off)
  7217.    SavePosition (On/Off)
  7218.    SavePosition (On/Off)
  7219.    If SavePosition is On, MarxMenu will return to the last menu selection
  7220.    you made when MarxMenu is re-entered. As you select menu layers your
  7221.    keystrokes are stored in an internal string variable called KeySave. On
  7222.    exit, MarxMenu writes KeySave to an environment variable KSV. On return
  7223.    to MarxMenu, this variable is retrieved. The return point may be altered
  7224.    by using the command KeySave = (string).
  7225.  
  7226.    Another thing this points out is that environment variables can be used
  7227.    to store information and allow MarxMenu to remember things from one
  7228.    selection to another. Since MarxMenu doesn't stay memory resident, this
  7229.    is the only way I have found to store information.
  7230.  
  7231.    Category: Keyboard, Environment
  7232.  
  7233.    ScreenHeight : Number
  7234.    ScreenHeight : Number
  7235.    ScreenHeight : Number
  7236.    Returns number of rows of character on your screen.
  7237.  
  7238.    Category: Display
  7239.  
  7240.    ScreenWidth : Number
  7241.    ScreenWidth : Number
  7242.    ScreenWidth : Number
  7243.    Returns number of columns of character on your screen.
  7244.  
  7245.    Category: Display
  7246.  
  7247.    ScrollLock : Boolean
  7248.    ScrollLock : Boolean
  7249.    ScrollLock : Boolean
  7250.    Returns true if Scroll Lock is on. This command can also set the Scroll
  7251.    Lock on and off.
  7252.  
  7253.     Example:
  7254.       if ScrollLock then Write 'ScrollLock is On'
  7255.  
  7256.       ScrollLock On  ;Turns ScrollLock On
  7257.       ScrollLock Off ;Turns ScrollLock Off
  7258.  
  7259.       ScrollLock (by itself) turns ScrollLock On.
  7260.  
  7261.    See Also: CapsLock, NumLock
  7262.  
  7263.    Category: System
  7264.  
  7265.  
  7266.  
  7267.    Computer Tyme MarxMenu Users Manual                     Page 111
  7268.    _______________________________________________________________
  7269.  
  7270.  
  7271.    ScrollMove (On/Off)
  7272.    ScrollMove (On/Off)
  7273.    ScrollMove (On/Off)
  7274.    This allows you to control whether or not the ScrollLock will allow you
  7275.    to move the top window. Default is On.
  7276.  
  7277.    Category: Display
  7278.  
  7279.    Second : Number
  7280.    Second : Number
  7281.    Second : Number
  7282.    Returns the current second.
  7283.  
  7284.    Category: Time
  7285.  
  7286.    SecondOf (Date) : Number
  7287.    SecondOf (Date) : Number
  7288.    SecondOf (Date) : Number
  7289.    Returns the second of a date. If Date is passed as a string it is
  7290.    converted automatically.
  7291.  
  7292.    See Also: TimeOf, BadDate
  7293.  
  7294.    Category: Time
  7295.  
  7296.    SecondsInDay : number
  7297.    SecondsInDay : number
  7298.    SecondsInDay : number
  7299.    Returns 86400
  7300.  
  7301.    Category: Time
  7302.  
  7303.    SecondsInHour : Number
  7304.    SecondsInHour : Number
  7305.    SecondsInHour : Number
  7306.    Returns 3600
  7307.  
  7308.    Category: Time
  7309.  
  7310.    Security (on/off)
  7311.    Security (on/off)
  7312.    Security (on/off)
  7313.    When security is on, Readln echos '*' instead of the letters that are
  7314.    being typed. This is used for such things as entering passwords other
  7315.    than using the password command.
  7316.  
  7317.    Category: String
  7318.  
  7319.    SelectPath : String
  7320.    SelectPath : String
  7321.    SelectPath : String
  7322.    This command uses another program in the Computer Tyme DOS TOOLBOX
  7323.    called Pick Directory to read a text into a variable. You must have
  7324.    Computer Tyme Pick Directory for this feature to work.
  7325.  
  7326.     Example:
  7327.       OnKey 'B'
  7328.       |%BackPath = SelectPath
  7329.       cd %BackPath
  7330.       backup c: a:
  7331.  
  7332.    Category: String
  7333.  
  7334.  
  7335.  
  7336.    Computer Tyme MarxMenu Users Manual                     Page 112
  7337.    _______________________________________________________________
  7338.  
  7339.  
  7340.    Sep : Number
  7341.    Sep : Number
  7342.    Sep : Number
  7343.    September, Returns the number 9.
  7344.  
  7345.    Category: Time
  7346.  
  7347.    SerialPorts : Number
  7348.    SerialPorts : Number
  7349.    SerialPorts : Number
  7350.    Returns number of serial ports.
  7351.  
  7352.    Category: System
  7353.  
  7354.    SetArraySize (Array,Size)
  7355.    SetArraySize (Array,Size)
  7356.    SetArraySize (Array,Size)
  7357.    If the array is larger than Size the array is truncated. If it is
  7358.    smaller, memory is allocated for the array.
  7359.  
  7360.    Category: Array
  7361.  
  7362.    SetEnv (String)
  7363.    SetEnv (String)
  7364.    SetEnv (String)
  7365.    This is used to set environment strings. It can be used on the Current,
  7366.    Parent, Master or Shell environment.
  7367.  
  7368.     Example:
  7369.  
  7370.       SetEnv ('PATH=C:\')
  7371.       SetEnv ('COMSPEC=X:COMMAND.COM')
  7372.  
  7373.    MarxMenu also allows you to select which environment you are working
  7374.    with. This is done with the following commands.
  7375.  
  7376.     CurrentEnvironment
  7377.     ParentEnvironment
  7378.     MasterEnvironment
  7379.     ShellEnvironment
  7380.  
  7381.    See Also: ReadEnv ReadEnvironment ShellEnvironment
  7382.    See Also: CurrentEnvironment ParentEnvironment MasterEnvironment
  7383.  
  7384.    Category: Environment
  7385.  
  7386.  
  7387.  
  7388.    Computer Tyme MarxMenu Users Manual                     Page 113
  7389.    _______________________________________________________________
  7390.  
  7391.  
  7392.    SetTopWindow (Number)
  7393.    SetTopWindow (Number)
  7394.    SetTopWindow (Number)
  7395.    Selects a window by number making it the current window and moves it to
  7396.    the top.
  7397.  
  7398.     Example:
  7399.       DrawBox ....
  7400.       ThisWindow = CurrentWindow
  7401.       DrawBox ....
  7402.       DrawBox ....
  7403.       SetTopWindow (ThisWindow)
  7404.  
  7405.    See Also: CurrentWindow, RollWindow, SetWindowUnder
  7406.  
  7407.    Category: Display
  7408.  
  7409.    SetWindowUnder (Window1,Window2)
  7410.    SetWindowUnder (Window1,Window2)
  7411.    SetWindowUnder (Window1,Window2)
  7412.    This command moves Window1 underneath Window2. This can be used to put a
  7413.    window back in the stack after you use SetTopWindow.
  7414.  
  7415.    See Also: CurrentWindow, SetTopWindow, RollWindow
  7416.  
  7417.    Category: Display
  7418.  
  7419.    Shadow (on/off)
  7420.    Shadow (on/off)
  7421.    Shadow (on/off)
  7422.    Turn window shadows on/off.
  7423.  
  7424.    Category: Display
  7425.  
  7426.    ShadowColor (ForeColor,BackColor)
  7427.    ShadowColor (ForeColor,BackColor)
  7428.    ShadowColor (ForeColor,BackColor)
  7429.    Sets the color of the shadow. There are actually two shadow colors.
  7430.    MarxMenu stores different values for big shadows and small shadows.
  7431.  
  7432.    See Also: BigShadow, SmallShadow, ShadowPosition, Shadow
  7433.  
  7434.    Category: Color
  7435.  
  7436.    ShadowPosition (number)
  7437.    ShadowPosition (number)
  7438.    ShadowPosition (number)
  7439.    Selects the shadow position around the window. A zero (default) sets the
  7440.    shadow position to the bottom right side. A one sets the shadow position
  7441.    to the bottom left. Using ShadowPosition turns shadowing on so a Shadow
  7442.    On command is not required.
  7443.  
  7444.    See Also: Shadow, ShadowColor, BigShadow, SmallShadow
  7445.  
  7446.    Category: Display
  7447.  
  7448.  
  7449.  
  7450.    Computer Tyme MarxMenu Users Manual                     Page 114
  7451.    _______________________________________________________________
  7452.  
  7453.  
  7454.    Shared
  7455.    Shared
  7456.    Shared
  7457.    The key word SHARED can be used to define variables just like VAR. Any
  7458.    variable defined with SHARED is passed globally to and from overlays.
  7459.  
  7460.    The important thing is that the Shared variables must be defined exactly
  7461.    the same way between the overlays. There is also a pre-defined variable
  7462.    called COMMON. Technically, Shared variables are qualifiers off of
  7463.    COMMON.
  7464.  
  7465.    See Also: Var, Constant, Qualifier
  7466.  
  7467.    Category: Variable
  7468.  
  7469.    ShellEnvironment
  7470.    ShellEnvironment
  7471.    ShellEnvironment
  7472.    ShellEnvironment selects the environment of the last COMMAND.COM in
  7473.    memory for use with environment access commands. This is usually the
  7474.    same as the Master Environment.
  7475.  
  7476.    More than one COMMAND.COM is loaded when you are running a shell under
  7477.    WINDOWS or DESQVIEW. When using these programs, you will want to access
  7478.    the Shell Envoronment instead of the Master Environment. The Shell
  7479.    Environment is the one that will run batch files.
  7480.  
  7481.    See Also: ReadEnv SetEnv ReadEnvironment MasterEnvironment
  7482.    See Also: CurrentEnvironment ParentEnvironment
  7483.  
  7484.    Category: Environment
  7485.  
  7486.    Shl : Operator
  7487.    Shl : Operator
  7488.    Shl : Operator
  7489.    Shift left, does a binary 32 bit shift left.
  7490.  
  7491.    Category: Math
  7492.  
  7493.    Shr : Operator
  7494.    Shr : Operator
  7495.    Shr : Operator
  7496.    Shift right, does a binary 32 bit shift right.
  7497.  
  7498.    Category: Math
  7499.  
  7500.    Sin (Radians) : Real
  7501.    Sin (Radians) : Real
  7502.    Sin (Radians) : Real
  7503.    Returns the Sine of a real.
  7504.  
  7505.    Category: Math, Float
  7506.  
  7507.    SingleLineBox
  7508.    SingleLineBox
  7509.    SingleLineBox
  7510.    Selects single line box for menu borders.
  7511.  
  7512.    See Also: DoubleLineBox, BlockBox, CustomBox, NoBoxBorder
  7513.  
  7514.    Category: Display
  7515.  
  7516.  
  7517.  
  7518.    Computer Tyme MarxMenu Users Manual                     Page 115
  7519.    _______________________________________________________________
  7520.  
  7521.  
  7522.    SmallShadow
  7523.    SmallShadow
  7524.    SmallShadow
  7525.    Selects small shadow type.
  7526.  
  7527.    See Also: BigShadow, ShadowPosition, ShadowColor
  7528.  
  7529.    Category: Display
  7530.  
  7531.    SortArray (Array)
  7532.    SortArray (Array)
  7533.    SortArray (Array)
  7534.    SortArray will do an alphabetical sort on an array of strings.
  7535.  
  7536.     Example: Sort a Text File
  7537.  
  7538.       Usage: DIR|MARXMENU SORT|MORE
  7539.              MARXMENU SORT INFILE OUTFILE
  7540.  
  7541.       var SortBuf
  7542.       ClearScreenOnExit Off
  7543.       ReadTextFile  (ParamStr(2),SortBuf)
  7544.       SortArray(SortBuf)
  7545.       WriteTextFile (ParamStr(3),SortBuf)
  7546.  
  7547.    Category: Array
  7548.  
  7549.    Sound (on/off)
  7550.    Sound (on/off)
  7551.    Sound (on/off)
  7552.    Turn sound effects on/off.
  7553.  
  7554.    Category: Display
  7555.  
  7556.    Sqr (Real) : Real
  7557.    Sqr (Real) : Real
  7558.    Sqr (Real) : Real
  7559.    Returns the Square Root of a real.
  7560.  
  7561.    Category: Math, Float
  7562.  
  7563.    StandardIO
  7564.    StandardIO
  7565.    StandardIO
  7566.    This tells MarxMenu to use standard Input and Output file handles for
  7567.    reading the keyboard and writing to the screen.
  7568.  
  7569.    Category: Display
  7570.  
  7571.    Str (number) : String
  7572.    Str (number) : String
  7573.    Str (number) : String
  7574.    Turns a number into a string.
  7575.  
  7576.    Category: String
  7577.  
  7578.  
  7579.  
  7580.    Computer Tyme MarxMenu Users Manual                     Page 116
  7581.    _______________________________________________________________
  7582.  
  7583.  
  7584.    StuffAKey (String or Number)
  7585.    StuffAKey (String or Number)
  7586.    StuffAKey (String or Number)
  7587.    Stuffs a single key into the DOS keyboard buffer when MarxMenu exits.
  7588.    The limit is 16 characters.
  7589.  
  7590.     Example:
  7591.       StuffAKey($3F00) ;stuff the F5 key
  7592.       StuffAKey F5     ;same thing
  7593.  
  7594.    Do not mix StuffAKey with StuffKBD. Use one or the other.
  7595.  
  7596.    Category: Execution, Keyboard, String
  7597.  
  7598.    StuffKBD (String)
  7599.    StuffKBD (String)
  7600.    StuffKBD (String)
  7601.    Stuffs the string into the DOS keyboard buffer when MarxMenu exits. The
  7602.    limit is 16 characters.
  7603.  
  7604.     Example:
  7605.        StuffKBD 'LOGOUT' + CR
  7606.  
  7607.    Category: Execution, Keyboard, String
  7608.  
  7609.    StuffKeyboardNow
  7610.    StuffKeyboardNow
  7611.    StuffKeyboardNow
  7612.    Normally the keyboard stuffing is done as MarxMenu quits. This forces
  7613.    the keyboard to be stuffed immediately.
  7614.  
  7615.    Category: Keyboard
  7616.  
  7617.    Succ (number) : Number
  7618.    Succ (number) : Number
  7619.    Succ (number) : Number
  7620.    Returns number plus 1.
  7621.  
  7622.    Category: Math
  7623.  
  7624.    Suggest (Char)
  7625.    Suggest (Char)
  7626.    Suggest (Char)
  7627.    Normally the UseArrows command will start in the upper left hand corner.
  7628.    By using the Suggest command, you can set it to start on any menu
  7629.    selection.
  7630.  
  7631.     Example:
  7632.        Suggest 'E'
  7633.  
  7634.    Category: Display
  7635.  
  7636.    Sun : Number
  7637.    Sun : Number
  7638.    Sun : Number
  7639.    Sunday, Returns the number 0.
  7640.  
  7641.    Category: Time
  7642.  
  7643.    TextBackground (color)
  7644.    TextBackground (color)
  7645.    TextBackground (color)
  7646.    Sets text background color.
  7647.  
  7648.    Category: Color
  7649.  
  7650.  
  7651.  
  7652.    Computer Tyme MarxMenu Users Manual                     Page 117
  7653.    _______________________________________________________________
  7654.  
  7655.  
  7656.    TextColor (forecolor,backcolor)
  7657.    TextColor (forecolor,backcolor)
  7658.    TextColor (forecolor,backcolor)
  7659.    Sets the color of text to be displayed on the screen. TextColor resets
  7660.    the value of CapsColor.
  7661.  
  7662.    Category: Color
  7663.  
  7664.    TextMode (num)
  7665.    TextMode (num)
  7666.    TextMode (num)
  7667.    Sets the video text mode.
  7668.  
  7669.     0 = 40 column BW
  7670.     1 = 40 column COLOR
  7671.     2 = 80 column BW
  7672.     3 = 80 column COLOR
  7673.     258 = 43/50 line EGA BW
  7674.     259 = 43/50 line EGA COLOR
  7675.  
  7676.     Example:
  7677.       TextMode BW80
  7678.  
  7679.    Category: Video
  7680.  
  7681.    TextPos : Number
  7682.    TextPos : Number
  7683.    TextPos : Number
  7684.    TextPos returns the current position in a text file. This can be saved
  7685.    so that you can go to the same place using TextSeek.
  7686.  
  7687.    See Also: TextSeek
  7688.  
  7689.    Category: File
  7690.  
  7691.    TextSeek (Number)
  7692.    TextSeek (Number)
  7693.    TextSeek (Number)
  7694.    TextSeek moves to a specific byte in a text file.
  7695.  
  7696.    See Also: TextPos
  7697.  
  7698.    Category: File
  7699.  
  7700.    Then
  7701.    Then
  7702.    Then
  7703.    Conditional control.
  7704.  
  7705.    See Also: If
  7706.  
  7707.    Category: Conditional
  7708.  
  7709.    Thu : Number
  7710.    Thu : Number
  7711.    Thu : Number
  7712.    Thursday, Returns the number 4.
  7713.  
  7714.    Category: Time
  7715.  
  7716.  
  7717.  
  7718.    Computer Tyme MarxMenu Users Manual                     Page 118
  7719.    _______________________________________________________________
  7720.  
  7721.  
  7722.    TimeOf (String) : Number
  7723.    TimeOf (String) : Number
  7724.    TimeOf (String) : Number
  7725.    Converts a string representing a date to a date number.
  7726.  
  7727.     Examples:
  7728.       '4-7-91'                 ;04-07-1991 00:00:00
  7729.       'April 7th, 1991 4:35pm' ;04-07-1991 16:35:00
  7730.       '12:35:23a'              ;04-07-1991 00:35:23
  7731.       '3:15'                   ;04-07-1991 03:15:00
  7732.  
  7733.    If the string can't be converted, then BadDate is set to true.
  7734.  
  7735.    Category: Time
  7736.  
  7737.    Timer : Number
  7738.    Timer : Number
  7739.    Timer : Number
  7740.    Returns the system timer.
  7741.  
  7742.    Category: Time
  7743.  
  7744.    TimeString : String
  7745.    TimeString : String
  7746.    TimeString : String
  7747.    Returns the time in HH:MM:SS format. 24 hour.
  7748.  
  7749.    Category: String, Time
  7750.  
  7751.    Today : Date
  7752.    Today : Date
  7753.    Today : Date
  7754.    Returns the current day as a date. The date returned has the time set to
  7755.    midnight or 00:00:00.
  7756.  
  7757.    Category: Time
  7758.  
  7759.    Tone (Frequency,Duration)
  7760.    Tone (Frequency,Duration)
  7761.    Tone (Frequency,Duration)
  7762.    This command plays a note at Frequency cycles per second for a period of
  7763.    Duration 1/18 of a second. The reason it is in 1/18 seconds is because
  7764.    there is a standard interrupt that gives me that time period. The IBM
  7765.    series computers are not music oriented machines so don't throw away
  7766.    your Compact Disk player.
  7767.  
  7768.    The maximum duration is 255 1/18 of a second. Normally, MarxMenu will
  7769.    create a break in between notes equal to 1/8 of the duration of the
  7770.    note. If you want to eliminate the break and create a 'slur' (music
  7771.    term), add 256 to the duration. This tells MarxMenu to connect the notes
  7772.    without a break.
  7773.  
  7774.    Category: Music
  7775.  
  7776.  
  7777.  
  7778.    Computer Tyme MarxMenu Users Manual                     Page 119
  7779.    _______________________________________________________________
  7780.  
  7781.  
  7782.    TotalDiskSpace <drive> : Number
  7783.    TotalDiskSpace <drive> : Number
  7784.    TotalDiskSpace <drive> : Number
  7785.    Returns total disk space in bytes.
  7786.  
  7787.     Example:
  7788.       Writeln (TotalDiskSpace 'C')
  7789.  
  7790.    TotalDiskSpace only looks at the first character of the string for
  7791.    the drive letter.
  7792.  
  7793.    Category: System
  7794.  
  7795.    TotalEMS : Number
  7796.    TotalEMS : Number
  7797.    TotalEMS : Number
  7798.    Returns total EMS memory in bytes.
  7799.  
  7800.    Category: Memory
  7801.  
  7802.    Trim (string)
  7803.    Trim (string)
  7804.    Trim (string)
  7805.    Trims white space from both ends of a string. White space is
  7806.    blank characters and lower.
  7807.  
  7808.    Category: String
  7809.  
  7810.    True : Boolean
  7811.    True : Boolean
  7812.    True : Boolean
  7813.    Returns boolean true.
  7814.  
  7815.    Category: Boolean
  7816.  
  7817.    Tue : Number
  7818.    Tue : Number
  7819.    Tue : Number
  7820.    Tuesday, Returns the number 2.
  7821.  
  7822.    Category: Time
  7823.  
  7824.    UniqueFileName : String
  7825.    UniqueFileName : String
  7826.    UniqueFileName : String
  7827.    Uses the create new file call to get a filename that is different than
  7828.    any other file name. It is tied to the DOS call that is used to create a
  7829.    unique file name according to the rules of your operating system.
  7830.  
  7831.    Category: File, String
  7832.  
  7833.    Until
  7834.    Until
  7835.    Until
  7836.    Conditional control.
  7837.  
  7838.    See Also: Repeat.
  7839.  
  7840.    Category: Conditional
  7841.  
  7842.    UpperCase (String) : String
  7843.    UpperCase (String) : String
  7844.    UpperCase (String) : String
  7845.    Return UpperCase of String
  7846.  
  7847.    Category: String
  7848.  
  7849.  
  7850.  
  7851.    Computer Tyme MarxMenu Users Manual                     Page 120
  7852.    _______________________________________________________________
  7853.  
  7854.  
  7855.    UpperCaseOnly : Boolean
  7856.    UpperCaseOnly : Boolean
  7857.    UpperCaseOnly : Boolean
  7858.    Setting UpperCaseOnly to on forces text entered with Readln or ReadKey
  7859.    to upper case.
  7860.  
  7861.    Category: String
  7862.  
  7863.    UseArrows
  7864.    UseArrows
  7865.    UseArrows
  7866.    UseArrows tells MarxMenu that the selection will be made by moving an
  7867.    inverse video bar over the selections. No parameters are required for
  7868.    this command to work. It will pick the first line with a capital letter
  7869.    as the first menu selection. All text in the window must be indented at
  7870.    least one space and there must be one space between the end of the line
  7871.    and the right wall of the window. Multiple items on the same line must
  7872.    be separated by two or more spaces.
  7873.  
  7874.    The OnKey selection is triggered by either the first capital letter in
  7875.    the selection or by a number from 0 - 9 or some punctuation characters.
  7876.    This number or letter will be a different color if you use the CapsColor
  7877.    command. (See Also: PULL.MNU for an example).
  7878.  
  7879.    UseArrows Off will disable this feature.
  7880.  
  7881.    See Also: ReadKey
  7882.  
  7883.    Category: Display
  7884.  
  7885.    UseCommand (on/off)
  7886.    UseCommand (on/off)
  7887.    UseCommand (on/off)
  7888.    Used with Execute. UseCommand will load COMMAND.COM before running the
  7889.    specified program. Its not as fast, because the system has to find and
  7890.    load COMMAND.COM, then the specified program. The advantage is if
  7891.    COMMAND.COM is loaded, it will allow you to run batch files and internal
  7892.    DOS commands. It also doesn't require you to specify the COM or EXE
  7893.    extension.
  7894.  
  7895.     Example:
  7896.       OnKey 'D'
  7897.       |UseCommand On
  7898.       |Execute 'DM'
  7899.  
  7900.    The default is OFF.
  7901.  
  7902.    See Also: Execute
  7903.  
  7904.    Category: Execution
  7905.  
  7906.  
  7907.  
  7908.    Computer Tyme MarxMenu Users Manual                     Page 121
  7909.    _______________________________________________________________
  7910.  
  7911.  
  7912.    UsedDiskSpace <drive> : Number
  7913.    UsedDiskSpace <drive> : Number
  7914.    UsedDiskSpace <drive> : Number
  7915.    Returns used disk space in bytes.
  7916.  
  7917.     Example:
  7918.       Writeln (UsedDiskSpace 'C')
  7919.  
  7920.    UsedDiskSpace only looks at the first character of the string for the
  7921.    dirve letter.
  7922.  
  7923.    Category: System
  7924.  
  7925.    UseNovPassword : Boolean
  7926.    UseNovPassword : Boolean
  7927.    UseNovPassword : Boolean
  7928.    If UseNovPassword is set to true then the screen blanker will require
  7929.    that the user type his Novell password to unblank the screen. Full
  7930.    Novell security and intruder detection is active here. If Novell's
  7931.    intruder detection is active, then if an intruder fails to type in the
  7932.    password after a number of attempts, then Netware will not accept the
  7933.    correct password until intruder detection allows it.
  7934.  
  7935.    If you don't know what intruder detection is, read the Netware manuals
  7936.    on the subject. It is something you should use.
  7937.  
  7938.    Category: Novell
  7939.  
  7940.    Value (string) : Number
  7941.    Value (string) : Number
  7942.    Value (string) : Number
  7943.    Converts String to Number. Leading $ indicates Hex.
  7944.  
  7945.    Category: String, Math
  7946.  
  7947.    Var
  7948.    Var
  7949.    Var
  7950.    Used to create variables.
  7951.  
  7952.    See Also: Constant, Shared, Qualifier
  7953.  
  7954.    Category: Variable
  7955.  
  7956.    VideoMode : Number
  7957.    VideoMode : Number
  7958.    VideoMode : Number
  7959.    Returns Current Video Mode.
  7960.  
  7961.    Category: Video
  7962.  
  7963.    VideoPage : Number
  7964.    VideoPage : Number
  7965.    VideoPage : Number
  7966.    Returns Current Video Page.
  7967.  
  7968.    Category: Video
  7969.  
  7970.  
  7971.  
  7972.    Computer Tyme MarxMenu Users Manual                     Page 122
  7973.    _______________________________________________________________
  7974.  
  7975.  
  7976.    ViewArray (Array)
  7977.    ViewArray (Array)
  7978.    ViewArray (Array)
  7979.    Allows you to view an array of strings in the current window. Works just
  7980.    like ViewTextFile.
  7981.  
  7982.    See Also: ViewTextFile
  7983.  
  7984.    Category: Display, Array
  7985.  
  7986.    ViewTextFile (Name)
  7987.    ViewTextFile (Name)
  7988.    ViewTextFile (Name)
  7989.    This command lets you view a text file in the current window.
  7990.  
  7991.    See Also: ViewArrayFile
  7992.  
  7993.    Category: Display, File
  7994.  
  7995.    Volume (drive)
  7996.    Volume (drive)
  7997.    Volume (drive)
  7998.    Returns the volume label of the specified drive.
  7999.  
  8000.    Category: System
  8001.  
  8002.    Wait (number)
  8003.    Wait (number)
  8004.    Wait (number)
  8005.    Delay for a number of 1/100 seconds. Wait 250 delays 2 1/2 seconds.
  8006.  
  8007.    If you are running a multi-tasker like Windows 3 or DesqView, and the
  8008.    delay is over 1/4 second, MarxMenu will release time slices back to DOS
  8009.    and not bog down the CPU power on long waits. MarxMenu also releases CPU
  8010.    cycles while idel at the keyboard.
  8011.  
  8012.    See Also: WaitOrKbdReady
  8013.  
  8014.    Category: Misc
  8015.  
  8016.    WaitOrKbdReady (Number)
  8017.    WaitOrKbdReady (Number)
  8018.    WaitOrKbdReady (Number)
  8019.    This command is just like the WAIT command except the wait is aborted by
  8020.    pressing any key. Time to wait is in hundredths of a second. This
  8021.    command is useful when using MarxMenu to write a running demo.
  8022.  
  8023.    See Also: Wait
  8024.  
  8025.    Category: Keyboard
  8026.  
  8027.    Wed : Number
  8028.    Wed : Number
  8029.    Wed : Number
  8030.    Wednesday, Returns the number 3.
  8031.  
  8032.    Category: Time
  8033.  
  8034.    WhereX : Number
  8035.    WhereX : Number
  8036.    WhereX : Number
  8037.    Returns the horizontal position of the cursor within the current window.
  8038.  
  8039.    Category: Display
  8040.  
  8041.  
  8042.  
  8043.    Computer Tyme MarxMenu Users Manual                     Page 123
  8044.    _______________________________________________________________
  8045.  
  8046.  
  8047.    WhereXAbs : Number
  8048.    WhereXAbs : Number
  8049.    WhereXAbs : Number
  8050.    Returns the horizontal screen position of the cursor.
  8051.  
  8052.    Category: Display
  8053.  
  8054.    WhereY : Number
  8055.    WhereY : Number
  8056.    WhereY : Number
  8057.    Returns the vertical position of the cursor within the current window.
  8058.  
  8059.    WhereYAbs : Number
  8060.    WhereYAbs : Number
  8061.    WhereYAbs : Number
  8062.    Returns the vertical screen position of the cursor.
  8063.  
  8064.    Category: Display
  8065.  
  8066.    While
  8067.    While
  8068.    While
  8069.    Used for program control. Usage:
  8070.  
  8071.     WHILE (condition)
  8072.        (statement)
  8073.        (statement)
  8074.     ENDWHILE
  8075.  
  8076.    Execution stays in the while loop as long as the condition is true.
  8077.  
  8078.    See Also: EndWhile
  8079.  
  8080.    Category: Conditional
  8081.  
  8082.    White : Number
  8083.    White : Number
  8084.    White : Number
  8085.    Returns the number 15.
  8086.  
  8087.    Category: Color
  8088.  
  8089.    WindowHeight : Number
  8090.    WindowHeight : Number
  8091.    WindowHeight : Number
  8092.    Returns number of rows in current window.
  8093.  
  8094.    Category: Display
  8095.  
  8096.    WindowWidth : Number
  8097.    WindowWidth : Number
  8098.    WindowWidth : Number
  8099.    Returns number of columns in current window.
  8100.  
  8101.    Category: Display
  8102.  
  8103.    Write (string)
  8104.    Write (string)
  8105.    Write (string)
  8106.    Writes (string) on the screen at the current cursor position.
  8107.  
  8108.    Category: Display
  8109.  
  8110.  
  8111.  
  8112.    Computer Tyme MarxMenu Users Manual                     Page 124
  8113.    _______________________________________________________________
  8114.  
  8115.  
  8116.    WriteCenter (string)
  8117.    WriteCenter (string)
  8118.    WriteCenter (string)
  8119.    Writes (string) centered in current window.
  8120.  
  8121.    Category: Display
  8122.  
  8123.    Writeln (string)
  8124.    Writeln (string)
  8125.    Writeln (string)
  8126.    Writes (string) on the screen followed by a CR-LF (carriage
  8127.    return-line feed).
  8128.  
  8129.    Category: Display
  8130.  
  8131.    WriteTextFile (FileName,Array)
  8132.    WriteTextFile (FileName,Array)
  8133.    WriteTextFile (FileName,Array)
  8134.    This command writes a string array to a text file. Do not use FileCreate
  8135.    of any other file commands with this. This command does it all.
  8136.  
  8137.    See Also: ReadTextFile
  8138.  
  8139.    Category: File, Array
  8140.  
  8141.    WriteVertical (string)
  8142.    WriteVertical (string)
  8143.    WriteVertical (string)
  8144.    Writes (string) vertically on the screen from the current cursor
  8145.    position.
  8146.  
  8147.     Example:
  8148.       WriteVertical( 'Hello' )
  8149.  
  8150.         ;This would display
  8151.           H
  8152.           e
  8153.           l
  8154.           l
  8155.           o
  8156.  
  8157.    Category: Display
  8158.  
  8159.    Xor : Operator
  8160.    Xor : Operator
  8161.    Xor : Operator
  8162.    Returns logical Xor if operators are boolean; or bitwise Xor if
  8163.    operators are numeric.
  8164.  
  8165.    Category: Math, Boolean
  8166.  
  8167.    Year : Number
  8168.    Year : Number
  8169.    Year : Number
  8170.    Returns current Year.
  8171.  
  8172.    Category: Time
  8173.  
  8174.  
  8175.  
  8176.    Computer Tyme MarxMenu Users Manual                     Page 125
  8177.    _______________________________________________________________
  8178.  
  8179.  
  8180.    YearOf (Date) : Number
  8181.    YearOf (Date) : Number
  8182.    YearOf (Date) : Number
  8183.    Returns the year of a date. If Date is passed as a string it is
  8184.    converted automatically.
  8185.  
  8186.    See Also: TimeOf, BadDate
  8187.  
  8188.    Category: Time
  8189.  
  8190.    Yellow : Number
  8191.    Yellow : Number
  8192.    Yellow : Number
  8193.    Returns the number 14.
  8194.  
  8195.    Category: Color
  8196.  
  8197.    Yes : Boolean
  8198.    Yes : Boolean
  8199.    Yes : Boolean
  8200.    Returns True.
  8201.  
  8202.    STRING AND CHARACTER CONSTANTS
  8203.    STRING AND CHARACTER CONSTANTS
  8204.    STRING AND CHARACTER CONSTANTS
  8205.  
  8206.       BKSP = #8
  8207.       CR   = #13
  8208.       CRLF = #13#10
  8209.       ESC  = #27
  8210.       FF   = #12
  8211.       LF   = #10
  8212.  
  8213.       F1   = #0#59
  8214.       F2   = #0#60
  8215.       F3   = #0#61
  8216.       F4   = #0#62
  8217.       F5   = #0#63
  8218.       F6   = #0#64
  8219.       F7   = #0#65
  8220.       F8   = #0#66
  8221.       F9   = #0#67
  8222.       F10  = #0#68
  8223.       F11  = #0#133
  8224.       F12  = #0#134
  8225.  
  8226.       SF1  = #0#84
  8227.       SF2  = #0#85
  8228.       SF3  = #0#86
  8229.       SF4  = #0#87
  8230.       SF5  = #0#88
  8231.       SF6  = #0#89
  8232.       SF7  = #0#90
  8233.       SF8  = #0#91
  8234.       SF9  = #0#92
  8235.       SF10 = #0#93
  8236.       SF11 = #0#135
  8237.       SF12 = #0#136
  8238.  
  8239.  
  8240.  
  8241.    Computer Tyme MarxMenu Users Manual                     Page 126
  8242.    _______________________________________________________________
  8243.  
  8244.  
  8245.       CF1  = #0#94
  8246.       CF2  = #0#95
  8247.       CF3  = #0#96
  8248.       CF4  = #0#97
  8249.       CF5  = #0#98
  8250.       CF6  = #0#99
  8251.       CF7  = #0#100
  8252.       CF8  = #0#101
  8253.       CF9  = #0#102
  8254.       CF10 = #0#103
  8255.       CF11 = #0#137
  8256.       CF12 = #0#138
  8257.  
  8258.       AF1  = #0#104
  8259.       AF2  = #0#105
  8260.       AF3  = #0#106
  8261.       AF4  = #0#107
  8262.       AF5  = #0#108
  8263.       AF6  = #0#109
  8264.       AF7  = #0#110
  8265.       AF8  = #0#111
  8266.       AF9  = #0#112
  8267.       AF10 = #0#113
  8268.       AF11 = #0#139
  8269.       AF12 = #0#140
  8270.  
  8271.       ALT1 = #0#120
  8272.       ALT2 = #0#121
  8273.       ALT3 = #0#122
  8274.       ALT4 = #0#123
  8275.       ALT5 = #0#124
  8276.       ALT6 = #0#125
  8277.       ALT7 = #0#126
  8278.       ALT8 = #0#127
  8279.       ALT9 = #0#128
  8280.       ALT0 = #0#129
  8281.  
  8282.  
  8283.  
  8284.    Computer Tyme MarxMenu Users Manual                     Page 127
  8285.    _______________________________________________________________
  8286.  
  8287.  
  8288.    CONDITIONAL STATEMENTS
  8289.    CONDITIONAL STATEMENTS
  8290.    CONDITIONAL STATEMENTS
  8291.  
  8292.    MarxMenu has a full complement of conditional statements. They are as
  8293.    follows:
  8294.  
  8295.     IF->ELSE->ENDIF        Where, IF [condition]
  8296.                                      statement
  8297.                                      statement
  8298.                                   ELSE
  8299.                                      statement
  8300.                                      statement
  8301.                                   ENDIF
  8302.  
  8303.     IF->THEN               Where, IF [condition] THEN statement
  8304.  
  8305.     REPEAT->UNTIL          Where, REPEAT
  8306.                                      statement
  8307.                                      statement
  8308.                                   UNTIL [condition]
  8309.  
  8310.     WHILE->ENDWHILE        Where, WHILE [conditon]
  8311.                                      statement
  8312.                                      statement
  8313.                                   ENDWHILE
  8314.  
  8315.  
  8316.     PROCEDURE->ENDPROC     PROCEDURE (name)
  8317.                                      statement
  8318.                                      statement
  8319.                            ENDPROC
  8320.  
  8321.  
  8322.     LOOP->ENDLOOP          LOOP (number)
  8323.                                      statement
  8324.                                      statement
  8325.                            ENDLOOP
  8326.  
  8327.  
  8328.  
  8329.    Computer Tyme MarxMenu Users Manual                     Page 128
  8330.    _______________________________________________________________
  8331.  
  8332.  
  8333.    ENVIRONMENT VARIABLES USED BY MARXMENU
  8334.    ENVIRONMENT VARIABLES USED BY MARXMENU
  8335.    ENVIRONMENT VARIABLES USED BY MARXMENU
  8336.  
  8337.    MarxMenu uses a variety of environment variables to control various
  8338.    MarxMenu functions. Many of these variables are optional.
  8339.  
  8340.     Set MouseX=(Number)
  8341.  
  8342.    Sets the horizontal sensitivity of the mouse. Default is 15.
  8343.  
  8344.     Set MouseY=(Number)
  8345.  
  8346.    Sets the vertical sensitivity of the mouse. Default is 25.
  8347.  
  8348.     Set MxEcho=(On/Off)
  8349.  
  8350.    If you set the first line of MARX.BAT to @ECHO %MXECHO% then by setting
  8351.    the environment variable MxEcho to ON or OFF, you can control the echo
  8352.    in the MARX.BAT file without having to edit it. This allows you to do
  8353.    diagnostics on a network without messing up other users.
  8354.  
  8355.     Set Temp=(Directory)
  8356.  
  8357.    Normally, MarxMenu creates temporary batch files in the same directory
  8358.    as MARXMENU.EXE. If you set TEMP to a directory, MarxMenu will use this
  8359.    directory instead. This complies with Windows / DOS 5.0 standards.
  8360.  
  8361.     Set MxCmd=(Command)
  8362.  
  8363.    MarxMenu uses MXCMD to control what the MARX.BAT file executes. You must
  8364.    have enough environment space available for MarxMenu to use.
  8365.  
  8366.     Set KSV=
  8367.  
  8368.    MarxMenu stores a series of keystrokes in the KSV variable when
  8369.    SavePosition is On.
  8370.  
  8371.     Set STATION=(Number)
  8372.  
  8373.    If you are on a network that is not Novell, then you should set this
  8374.    variable to a unique number for each station between 0 and 255.
  8375.  
  8376.     Set TASK=(Number)
  8377.  
  8378.    If you are running a multi-tasking operating system other than DesqView,
  8379.    and MarxMenu is running more than one task, then set an environment
  8380.    variable TASK to a unique number for each task.
  8381.  
  8382.    MarxMenu also accesses your COMSPEC variable and your PATH variable when
  8383.    executing programs.
  8384.  
  8385.  
  8386.  
  8387.    Computer Tyme MarxMenu Users Manual                     Page 129
  8388.    _______________________________________________________________
  8389.  
  8390.  
  8391.    COMMAND CATEGORIES
  8392.    COMMAND CATEGORIES
  8393.    COMMAND CATEGORIES
  8394.  
  8395.    Here is a breakdown of MarxMenu commands by command category. Many
  8396.    MarxMenu commands are in several categories. These are the same
  8397.    categories as in the MarxHelp utility.
  8398.  
  8399.    MISC COMMANDS
  8400.    MISC COMMANDS
  8401.    MISC COMMANDS
  8402.  
  8403.     |                       | (Vertical Bar)
  8404.     (                       ( : Operator
  8405.     )                       ) : Operator
  8406.     Alias                   Alias
  8407.     Comment                 Comment
  8408.     EndComment              EndComment
  8409.     EndProc                 EndProc
  8410.     Include                 Include (MenuName)
  8411.     Loc                     Loc (Procedure)
  8412.     NetworkVersion          NetworkVersion : Boolean
  8413.     Procedure               Procedure (name)
  8414.     Return                  Return (param,param,...)
  8415.     Run                     Run variable (parameters)
  8416.     Wait                    Wait (number)
  8417.  
  8418.    MATH COMMANDS
  8419.    MATH COMMANDS
  8420.    MATH COMMANDS
  8421.  
  8422.     *                       * : Operator
  8423.     +                       + : Operator
  8424.     -                       - : Operator
  8425.     /                       / : Operator
  8426.     <                       < : Operator
  8427.     <=                      <= : Operator
  8428.     <>                      <> : Operator
  8429.     =                       = : Operator
  8430.     >                       > : Operator
  8431.     >=                      >= : Operator
  8432.     Abs                     Abs : Number
  8433.     And                     And : Operator
  8434.     ArcTan                  ArcTan (Radians) : Real
  8435.     Cos                     Cos (Radians) : Real
  8436.     Exp                     Exp (Real) : Real
  8437.     Fraction                Fraction (Real) : Real
  8438.     Int                     Int (Real) : Real
  8439.     Integer                 Integer (Real) : Number
  8440.     Ln                      Ln (Real) : Real
  8441.     Max                     Max (Num,Num) : Num
  8442.     Min                     Min (Num,Num) : Num
  8443.     Mod                     Mod : Operator
  8444.     Not                     Not : Operator
  8445.     Or                      Or : Operator
  8446.     Pi                      Pi : Real
  8447.     Power                   Power (Real,Real) : Real
  8448.     Pred                    Pred (number) : Number
  8449.  
  8450.  
  8451.  
  8452.    Computer Tyme MarxMenu Users Manual                     Page 130
  8453.    _______________________________________________________________
  8454.  
  8455.  
  8456.     Random                  Random : Number
  8457.     Real                    Real (Integer) : Real
  8458.     Shl                     Shl : Operator
  8459.     Shr                     Shr : Operator
  8460.     Sin                     Sin (Radians) : Real
  8461.     Sqr                     Sqr (Real) : Real
  8462.     Succ                    Succ (number) : Number
  8463.     Value                   Value (string) : Number
  8464.     Xor                     Xor : Operator
  8465.  
  8466.    FLOAT COMMANDS
  8467.    FLOAT COMMANDS
  8468.    FLOAT COMMANDS
  8469.  
  8470.     *                       * : Operator
  8471.     +                       + : Operator
  8472.     -                       - : Operator
  8473.     /                       / : Operator
  8474.     <                       < : Operator
  8475.     <=                      <= : Operator
  8476.     <>                      <> : Operator
  8477.     =                       = : Operator
  8478.     >                       > : Operator
  8479.     >=                      >= : Operator
  8480.     Abs                     Abs : Number
  8481.     ArcTan                  ArcTan (Radians) : Real
  8482.     Cos                     Cos (Radians) : Real
  8483.     Exp                     Exp (Real) : Real
  8484.     Fraction                Fraction (Real) : Real
  8485.     Int                     Int (Real) : Real
  8486.     Integer                 Integer (Real) : Number
  8487.     Ln                      Ln (Real) : Real
  8488.     Max                     Max (Num,Num) : Num
  8489.     Min                     Min (Num,Num) : Num
  8490.     Pi                      Pi : Real
  8491.     Power                   Power (Real,Real) : Real
  8492.     Real                    Real (Integer) : Real
  8493.     Sin                     Sin (Radians) : Real
  8494.     Sqr                     Sqr (Real) : Real
  8495.  
  8496.  
  8497.  
  8498.    Computer Tyme MarxMenu Users Manual                     Page 131
  8499.    _______________________________________________________________
  8500.  
  8501.  
  8502.    STRING COMMANDS
  8503.    STRING COMMANDS
  8504.    STRING COMMANDS
  8505.  
  8506.     +                       + : Operator
  8507.     <                       < : Operator
  8508.     <=                      <= : Operator
  8509.     <>                      <> : Operator
  8510.     =                       = : Operator
  8511.     >                       > : Operator
  8512.     >=                      >= : Operator
  8513.     %MenuFileName           %MenuFileName : String
  8514.     BatFileName             BatFileName : String
  8515.     BlankMessage            BlankMessage (string)
  8516.     Char                    Char (number) : String
  8517.     CleanFileName           CleanFileName (string) : String
  8518.     CmdLine                 CmdLine : String
  8519.     DateString              DateString : String
  8520.     Delete                  Delete (string,pos,count)
  8521.     DosVersionString        DosVersionString : String
  8522.     Extension               Extension (String) : String
  8523.     FilePart                FilePart (String) : String
  8524.     ForceExtension          ForceExtension (String,Ext) : String
  8525.     InputString             InputString (String)
  8526.     Insert                  Insert (InsString,OrigString,Pos)
  8527.     KeySave                 KeySave : String
  8528.     LastKey                 LastKey : String
  8529.     Left                    Left (string,count) : String
  8530.     Length                  Length (string) : Number
  8531.     MarxVersion             MarxVersion : String
  8532.     Max                     Max (Num,Num) : Num
  8533.     Mid                     Mid (string,pos,count) : String
  8534.     Min                     Min (Num,Num) : Num
  8535.     MxCmd                   MxCmd : String
  8536.     NamePart                NamePart (String) : String
  8537.     NextWord                NextWord (String) : String
  8538.     OptionSwitch            OptionSwitch (String1,String2) : Boolean
  8539.     Ord                     Ord (Char) : Number
  8540.     OverKey                 OverKey : String
  8541.     ParamStr                ParamStr (Num) : String
  8542.     Path                    Path : String
  8543.     PathPart                PathPart (String) : String
  8544.     PickFile                PickFile (FileSpec,column,row,height) : String
  8545.     PickMany                PickMany(SourceArray,DestinationArray)
  8546.     PickOne                 PickOne (Array) : String
  8547.     PickPosition            PickPosition : Number
  8548.     Pos                     Pos (substring,string) : Number
  8549.     Readln                  Readln : String
  8550.     ReleaseDate             ReleaseDate : String
  8551.     Right                   Right (string,count) : String
  8552.     Security                Security (on/off)
  8553.     SelectPath              SelectPath : String
  8554.     Str                     Str (number) : String
  8555.     StuffAKey               StuffAKey (String or Number)
  8556.  
  8557.  
  8558.  
  8559.    Computer Tyme MarxMenu Users Manual                     Page 132
  8560.    _______________________________________________________________
  8561.  
  8562.  
  8563.     StuffKBD                StuffKBD (String)
  8564.     TimeString              TimeString : String
  8565.     Trim                    Trim (string)
  8566.     UniqueFileName          UniqueFileName : String
  8567.     UpperCase               UpperCase (String) : String
  8568.     UpperCaseOnly           UpperCaseOnly : Boolean
  8569.     Value                   Value (string) : Number
  8570.  
  8571.    BOOLEAN COMMANDS
  8572.    BOOLEAN COMMANDS
  8573.    BOOLEAN COMMANDS
  8574.  
  8575.     And                     And : Operator
  8576.     False                   False : Boolean
  8577.     No                      No : Boolean
  8578.     Not                     Not : Operator
  8579.     Off                     Off : Boolean
  8580.     On                      On : Boolean
  8581.     Or                      Or : Operator
  8582.     True                    True : Boolean
  8583.     Xor                     Xor : Operator
  8584.  
  8585.    MEMORY COMMANDS
  8586.    MEMORY COMMANDS
  8587.    MEMORY COMMANDS
  8588.  
  8589.     ApplicationMemory       ApplicationMemory : Number
  8590.     Dispose                 Dispose (Variable)
  8591.     FreeEms                 FreeEMS : Number
  8592.     FreeMemory              FreeMemory : Number
  8593.     Mem                     Mem (seg,ofs) : Number
  8594.     MemL                    MemL (seg,ofs) : Number
  8595.     MemSize                 MemSize : Number
  8596.     MemW                    MemW (seg,ofs) : Number
  8597.     Port                    Port (number) : Number
  8598.     TotalEms                TotalEMS : Number
  8599.  
  8600.  
  8601.  
  8602.    Computer Tyme MarxMenu Users Manual                     Page 133
  8603.    _______________________________________________________________
  8604.  
  8605.  
  8606.    TIME COMMANDS
  8607.    TIME COMMANDS
  8608.    TIME COMMANDS
  8609.  
  8610.     Apr                     Apr : Number
  8611.     Aug                     Aug : Number
  8612.     BadDate                 BadDate : Boolean
  8613.     DateString              DateString : String
  8614.     Day                     Day : Number
  8615.     DayOf                   DayOf (Date) : Number
  8616.     DayOfWeek               DayOfWeek : Number
  8617.     DayOfWeekOf             DayOfWeekOf (Date) : Number
  8618.     Dec                     Dec : Number
  8619.     Feb                     Feb : Number
  8620.     Fri                     Fri : Number
  8621.     Hour                    Hour : Number
  8622.     HourOf                  HourOf (Date) : Number
  8623.     Hundredth               Hundredth : Number
  8624.     Jan                     Jan : Number
  8625.     Jul                     Jul : Number
  8626.     Jun                     Jun : Number
  8627.     Mar                     Mar : Number
  8628.     May                     May : Number
  8629.     Minute                  Minute : Number
  8630.     MinuteOf                MinuteOf (Date) : Number
  8631.     Mon                     Mon : Number
  8632.     Month                   Month : Number
  8633.     MonthOf                 MonthOf (Date) : Number
  8634.     Nov                     Nov : Number
  8635.     NovAccountExpDate       NovAccountExpDate (UserName) : Date
  8636.     NovPasswordExpDate      NovPasswordExpDate (UserName) : Date
  8637.     Now                     Now : Date
  8638.     Oct                     Oct : Number
  8639.     Sat                     Sat : Number
  8640.     Second                  Second : Number
  8641.     SecondOf                SecondOf (Date) : Number
  8642.     SecondInDay             SecondsInDay : number
  8643.     SecondInHour            SecondsInHour : Number
  8644.     Sep                     Sep : Number
  8645.     Sun                     Sun : Number
  8646.     Thu                     Thu : Number
  8647.     TimeOf                  TimeOf (String) : Number
  8648.     Timer                   Timer : Number
  8649.     TimeString              TimeString : String
  8650.     Today                   Today : Date
  8651.     Tue                     Tue : Number
  8652.     Wed                     Wed : Number
  8653.     Year                    Year : Number
  8654.     YearOf                  YearOf (Date) : Number
  8655.  
  8656.  
  8657.  
  8658.    Computer Tyme MarxMenu Users Manual                     Page 134
  8659.    _______________________________________________________________
  8660.  
  8661.  
  8662.    EXECUTION COMMANDS
  8663.    EXECUTION COMMANDS
  8664.    EXECUTION COMMANDS
  8665.  
  8666.     Bat                     Bat (string)
  8667.     Chain                   Chain (MenuName)
  8668.     ClearScreenFirst        ClearScreenFirst (on/off)
  8669.     DosWindow               DosWindow (on/off)
  8670.     Execute                 Execute (command string)
  8671.     ExitCode                ExitCode
  8672.     ExitMenu                ExitMenu
  8673.     IdelProgram             IdelProgram : Procedure
  8674.     Jump                    Jump (menu)
  8675.     KeySave                 KeySave : String
  8676.     Logoff                  Logoff
  8677.     LogoffTime              LogoffTime : Number
  8678.     MxCmd                   MxCmd : String
  8679.     NoExit                  NoExit
  8680.     Overlay                 OverLay (MenuName)
  8681.     PauseAfterExecute       PauseAfterExecute (On/Off)
  8682.     Reboot                  Reboot
  8683.     ReturnCode              ReturnCode : Number
  8684.     StuffAKey               StuffAKey (String or Number)
  8685.     StuffKBD                StuffKBD (String)
  8686.     UseCommand              UseCommand (on/off)
  8687.  
  8688.    DISPLAY COMMANDS
  8689.    DISPLAY COMMANDS
  8690.    DISPLAY COMMANDS
  8691.  
  8692.     BigShadow               BigShadow
  8693.     Blanked                 Blanked : Boolean
  8694.     BlankTime               BlankTime (minutes)
  8695.     BlockBox                BlockBox
  8696.     BoxHeader               BoxHeader (string)
  8697.     BoxHeaderLeft           BoxHeaderLeft (string)
  8698.     BoxHeaderRight          BoxHeaderRight (string)
  8699.     BoxFooter               BoxFooter (string)
  8700.     BoxFooterLeft           BoxFooterLeft (string)
  8701.     BoxFooterRight          BoxFooterRight (string)
  8702.     ClearLine               ClearLine [char]
  8703.     ClearScreen             ClearScreen [char]
  8704.     ClearScreenOnExit       ClearScreenOnExit (on/off)
  8705.     ClockMode               ClockMode
  8706.     ClockPos                ClockPos (column,row)
  8707.     Console                 Console (On/Off)
  8708.     ConsolePos              ConsolePos (column,row)
  8709.     CurrentWindow           CurrentWindow : Number
  8710.     Cursor                  Cursor (On/Off)
  8711.     CustomBox               CustomBox (String)
  8712.     DoubleLineBox           DoubleLineBox
  8713.     DrawBox                 DrawBox (column,row,width,height)
  8714.     EraseTopWindow          EraseTopWindow
  8715.     EraseWindow             EraseWindow (Number)
  8716.     Explode                 Explode (on/off)
  8717.     ExplodeDelay            ExplodeDelay (number)
  8718.  
  8719.  
  8720.  
  8721.    Computer Tyme MarxMenu Users Manual                     Page 135
  8722.    _______________________________________________________________
  8723.  
  8724.  
  8725.     ForceExplosion          ForceExplosion (On/Off)
  8726.     GotoXY                  GotoXY (column,row)
  8727.     InactiveBox             InactiveBox (BoxType)
  8728.     LockWord                LockWord (word)
  8729.     MoveWindow              MoveWindow (Horizontal,Vertical)
  8730.     NoBoxBorder             NoBoxBorder
  8731.     PullMenu                PullMenu (on/off)
  8732.     ResizeWindow            ResizeWindow (Horizontal Vertical)
  8733.     RollWindow              RollWindow (number)
  8734.     ScreenHeight            ScreenHeight : Number
  8735.     ScreenWidth             ScreenWidth : Number
  8736.     ScrollMove              ScrollMove (On/Off)
  8737.     SetTopWindow            SetTopWindow (Number)
  8738.     SetWindowUnder          SetWindowUnder (Window1,Window2)
  8739.     Shadow                  Shadow (on/off)
  8740.     ShadowPosition          ShadowPosition (number)
  8741.     SingleLineBox           SingleLineBox
  8742.     SmallShadow             SmallShadow
  8743.     Sound                   Sound (on/off)
  8744.     StandardIO              StandardIO
  8745.     Suggest                 Suggest (Char)
  8746.     UseArrows               UseArrows
  8747.     ViewArray               ViewArray (Array)
  8748.     ViewTextFile            ViewTextFile (Name)
  8749.     WhereX                  WhereX : Number
  8750.     WhereXAbs               WhereXAbs : Number
  8751.     WhereYAbs               WhereYAbs : Number
  8752.     WindowHeight            WindowHeight : Number
  8753.     WindowWidth             WindowWidth : Number
  8754.     Write                   Write (string)
  8755.     WriteCenter             WriteCenter (string)
  8756.     Writeln                 Writeln (string)
  8757.     WriteVertical           WriteVertical (string)
  8758.  
  8759.  
  8760.  
  8761.    Computer Tyme MarxMenu Users Manual                     Page 136
  8762.    _______________________________________________________________
  8763.  
  8764.  
  8765.    COLOR COMMANDS
  8766.    COLOR COMMANDS
  8767.    COLOR COMMANDS
  8768.  
  8769.     Black                   Black : Number
  8770.     Blink                   Blink : Boolean
  8771.     Blue                    Blue : Number
  8772.     BoxBorderColor          BoxBorderColor (forecolor,backcolor)
  8773.     BoxHeaderColor          BoxHeaderColor (forecolor,backcolor)
  8774.     BoxInsideColor          BoxInsideColor (forecolor,backcolor)
  8775.     Brown                   Brown : Number
  8776.     CapsColor               CapsColor (forecolor,backcolor)
  8777.     ClockColor              ClockColor (forecolor,backcolor)
  8778.     ConsoleBorderColor      ConsoleBorderColor (Color,Color)
  8779.     ConsoleHeaderColor      ConsoleHeaderColor (Color,Color)
  8780.     ConsoleInsideColor      ConsoleInsideColor (Color,Color)
  8781.     Cyan                    Cyan : Number
  8782.     Green                   Green : Number
  8783.     Grey                    Grey : Number
  8784.     InactiveBoxColor        InactiveBoxColor (foreground,background)
  8785.     InverseColor            InverseColor (forecolor,backcolor)
  8786.     LBlue                   LBlue : Number
  8787.     LCyan                   LCyan : Number
  8788.     LGreen                  LGreen : Number
  8789.     LGrey                   LGrey : Number
  8790.     LMag                    LMag : Number
  8791.     LMagenta                LMagenta : Number
  8792.     LRed                    LRed : Number
  8793.     Mag                     Mag : Number
  8794.     Magenta                 Magenta : Number
  8795.     Red                     Red : Number
  8796.     ShadowColor             ShadowColor (ForeColor,BackColor)
  8797.     TextBackground          TextBackground (color)
  8798.     TextColor               TextColor (forecolor,backcolor)
  8799.     White                   White : Number
  8800.     Yellow                  Yellow : Number
  8801.  
  8802.    VIDEO COMMANDS
  8803.    VIDEO COMMANDS
  8804.    VIDEO COMMANDS
  8805.  
  8806.     BW40                    BW40 : Number
  8807.     BW80                    BW80 : Number
  8808.     CO40                    CO40 : Number
  8809.     CO80                    CO80 : Number
  8810.     ColorScreen             ColorScreen : Boolean
  8811.     Mono                    Mono : Number
  8812.     TextMode                TextMode (num)
  8813.     VideoMode               VideoMode : Number
  8814.     VideoPage               VideoPage : Number
  8815.  
  8816.  
  8817.  
  8818.    Computer Tyme MarxMenu Users Manual                     Page 137
  8819.    _______________________________________________________________
  8820.  
  8821.  
  8822.    SYSTEM COMMANDS
  8823.    SYSTEM COMMANDS
  8824.    SYSTEM COMMANDS
  8825.  
  8826.     CapsLock                CapsLock : Boolean
  8827.     ClusterSize             ClusterSize <drive> : Number
  8828.     DosVersion              DosVersion : Number
  8829.     DosVersionString        DosVersionString : String
  8830.     Drives                  Drives : Number
  8831.     Floppies                Floppies : Number
  8832.     FreeDiskSpace           FreeDiskSpace <drive> : Number
  8833.     MinorDosVersion         MinorDosVersion : Number
  8834.     NumLock                 NumLock : Boolean
  8835.     ParallelPorts           ParallelPorts : Number
  8836.     ScrollLock              ScrollLock : Boolean
  8837.     SerialPorts             SerialPorts : Number
  8838.     TotalDiskSpace          TotalDiskSpace <drive> : Number
  8839.     UsedDiskSpace           UsedDiskSpace <drive> : Number
  8840.     Volume                  Volume (drive)
  8841.  
  8842.    FILE COMMANDS
  8843.    FILE COMMANDS
  8844.    FILE COMMANDS
  8845.  
  8846.     ChDir                   ChDir (string)
  8847.     DelFile                 DelFile (Name)
  8848.     EndOfFile               EndOfFile (FileVar) : Boolean
  8849.     ExistDir                ExistDir (directory) : Boolean
  8850.     ExistFile               ExistFile : Boolean
  8851.     ExistOnPath             ExistOnPath (string) : String
  8852.     FileAppend              FileAppend (FileVar)
  8853.     FileAssign              FileAssign (FileVar,String)
  8854.     FileAttr                FileAttr (string) : Number
  8855.     FileClose               FileClose (FileVar)
  8856.     FileCreate              FileCreate (FileVar)
  8857.     FileDate                FileDate (string) : Number
  8858.     FileFlush               FileFlush (FileVar)
  8859.     FileLog                 FileLog (FileVar,String)
  8860.     FileOpen                FileOpen (FileVar)
  8861.     FilePos                 FilePos (FileVar) : Number
  8862.     FileReadln              FileReadln (FileVar) : String
  8863.     FileRename              FileRename (Old,New)
  8864.     FileResult              FileResult : Number
  8865.     FileSeek                FileSeek (FileVar,Number)
  8866.     FileSize                FileSize (string) : Number
  8867.     FileWrite               FileWrite (FileVar,String)
  8868.     FileWriteln             FileWriteln (FileVar,String)
  8869.     ReadTextFile            ReadTextFile (FileName,Array)
  8870.     TextPos                 TextPos : Number
  8871.     TextSeek                TextSeek (Number)
  8872.     UniqueFileName          UniqueFileName : String
  8873.     ViewTextFile            ViewTextFile (Name)
  8874.     WriteTextFile           WriteTextFile (FileName,Array)
  8875.  
  8876.  
  8877.  
  8878.    Computer Tyme MarxMenu Users Manual                     Page 138
  8879.    _______________________________________________________________
  8880.  
  8881.  
  8882.    PRINTER COMMANDS
  8883.    PRINTER COMMANDS
  8884.    PRINTER COMMANDS
  8885.  
  8886.     ClosePrinter            ClosePrinter
  8887.     NovPrintQueues          NovPrintQueues (Array)
  8888.     OpenPrinter             OpenPrinter
  8889.     Print                   Print (string)
  8890.     PrinterName             PrinterName (string)
  8891.     Println                 Println (String)
  8892.     PrintScreen             PrintScreen (On/Off)
  8893.  
  8894.    ENVIRONMENT COMMANDS
  8895.    ENVIRONMENT COMMANDS
  8896.    ENVIRONMENT COMMANDS
  8897.  
  8898.     CurrentEnvironment      CurrentEnvironment
  8899.     EnvFree                 EnvFree : Number
  8900.     EnvSize                 EnvSize : Number
  8901.     FixPath                 FixPath
  8902.     KeySave                 KeySave : String
  8903.     MasterEnvironment       MasterEnvironment
  8904.     ModifyPath              ModifyPath
  8905.     MxCmd                   MxCmd : String
  8906.     ParentEnvironment       ParentEnvironment
  8907.     ReadEnv                 ReadEnv (string) : String
  8908.     ReadEnvironment         ReadEnvironment (array)
  8909.     SavePosition            SavePosition (On/Off)
  8910.     SetEnv                  SetEnv (String)
  8911.     ShellEnvironment        ShellEnvironment
  8912.  
  8913.    ARRAY COMMANDS
  8914.    ARRAY COMMANDS
  8915.    ARRAY COMMANDS
  8916.  
  8917.     Delete                  Delete (string,pos,count)
  8918.     Dispose                 Dispose (Variable)
  8919.     NovGroupMembers         NovGroupsMembers (Group,Array)
  8920.     NovPrintQueues          NovPrintQueues (Array)
  8921.     NovReadGroups           NovReadGroups (Name,Array)
  8922.     NovReadSecurityEquals   NovReadSecurityEquals (Name,Array)
  8923.     NovServers              NovServers (Array)
  8924.     NovScanProperties       NovScanProperties (Array, Object, ObjectType)
  8925.     NovUsers                NovUsers (Array)
  8926.     NovUsersLoggedIn        NovUsersLoggedIn (Array)
  8927.     NumberOfElements        NumberOfElememts (array) : Number
  8928.     PickMany                PickMany(SourceArray,DestinationArray)
  8929.     PickOne                 PickOne (Array) : String
  8930.     PickPosition            PickPosition : Number
  8931.     ReadEnvironment         ReadEnvironment (array)
  8932.     ReadTextFile            ReadTextFile (FileName,Array)
  8933.     SetArraySize            SetArraySize (Array,Size)
  8934.     SortArray               SortArray (Array)
  8935.     ViewArray               ViewArray (Array)
  8936.     WriteTextFile           WriteTextFile (FileName,Array)
  8937.  
  8938.  
  8939.  
  8940.    Computer Tyme MarxMenu Users Manual                     Page 139
  8941.    _______________________________________________________________
  8942.  
  8943.  
  8944.    DESQVIEW COMMANDS
  8945.    DESQVIEW COMMANDS
  8946.    DESQVIEW COMMANDS
  8947.  
  8948.     DvAppNumber             DvAppNumber : Number
  8949.     DvFrame                 DvFrame (Handle,On/Off)
  8950.     DvFreeze                DvFreeze (Handle)
  8951.     DvHide                  DvHide (Handle)
  8952.     DvKillTask              DvKillTask (Handle)
  8953.     DvLastHandle            DvLastHandle : Number
  8954.     DvLoaded                DvLoaded : Boolean
  8955.     DvMoveWindow            DvMoveWindow (Handle,X,Y)
  8956.     DvMyHandle              DvMyHandle : Number
  8957.     DvPifExecute            DvPifExecute (Pif File)
  8958.     DvResizeWindow          DvResizeWindow (Handle,Width,Height)
  8959.     DvSetBottom             DvSetBottom (Handle)
  8960.     DvSetTop                DvSetTop (Handle)
  8961.     DvUnFreeze              DvUnFreeze (Handle)
  8962.     DvUnHide                DvUnHide (Handle)
  8963.  
  8964.    CONDITIONAL COMMANDS
  8965.    CONDITIONAL COMMANDS
  8966.    CONDITIONAL COMMANDS
  8967.  
  8968.     Else                    Else
  8969.     Endif                   EndIf
  8970.     EndLoop                 EndLoop
  8971.     EndWhile                EndWhile
  8972.     If                      If
  8973.     Loop                    Loop
  8974.     LoopIndex               LoopIndex
  8975.     LoopLimit               LoopLimit
  8976.     OnKey                   OnKey (char)
  8977.     OnScreenOnly            OnScreenOnly (On/Off)
  8978.     Password                Password (Pswd,column,row)
  8979.     Repeat                  Repeat
  8980.     Then                    Then
  8981.     Until                   Until
  8982.     While                   While
  8983.  
  8984.    KEYBOARD COMMANDS
  8985.    KEYBOARD COMMANDS
  8986.    KEYBOARD COMMANDS
  8987.  
  8988.     InputString             InputString (String)
  8989.     InsertMode              InsertMode (On/Off)
  8990.     KbdReady                KbdReady : Boolean
  8991.     MenuKeyBuffer           MenuKeyBuffer
  8992.     ReadKey                 ReadKey : String
  8993.     Readln                  Readln : String
  8994.     SavePosition            SavePosition (On/Off)
  8995.     StuffAKey               StuffAKey (String or Number)
  8996.     StuffKBD                StuffKBD (String)
  8997.     StuffKeyboardNow        StuffKeyboardNow
  8998.     WaitOrKbdReady          WaitOrKbdReady (Number)
  8999.  
  9000.  
  9001.  
  9002.    Computer Tyme MarxMenu Users Manual                     Page 140
  9003.    _______________________________________________________________
  9004.  
  9005.  
  9006.    MOUSECONTROL COMMANDS
  9007.    MOUSECONTROL COMMANDS
  9008.    MOUSECONTROL COMMANDS
  9009.  
  9010.     KeyFromMouse            KeyFromMouse : Boolean
  9011.     Mouse                   Mouse
  9012.     MouseHorizontal         MouseHorizontal (Number)
  9013.     MouseVertical           MouseVertical (Number)
  9014.  
  9015.    MUSIC COMMANDS
  9016.    MUSIC COMMANDS
  9017.    MUSIC COMMANDS
  9018.  
  9019.     KillMusic               KillMusic
  9020.     NotesLeft               NotesLeft : Num
  9021.     NotesPlayed             NotesPlayed : Num
  9022.     Tone                    Tone (Frequency,Duration)
  9023.  
  9024.    NOVELL COMMANDS
  9025.    NOVELL COMMANDS
  9026.    NOVELL COMMANDS
  9027.  
  9028.     MachineName             MachineName : String
  9029.     NovAccountExpDate       NovAccountExpDate (UserName) : Date
  9030.     NovAttach               NovAttach (Server)
  9031.     NovChangePassword       NovChangePassword (OldPassword,NewPassword)
  9032.     NovCloseSemaphore       NovCloseSemaphore (Name)
  9033.     NovConnection           NovConnection : Number
  9034.     NovConsoleOperator      NovConsoleOperator : Boolean
  9035.     NovDefaultServer        NovDefaultServer : String
  9036.     NovDetach               NovDetach (Server)
  9037.     NovGroupMembers         NovGroupsMembers (Group,Array)
  9038.     NovGroups               NovGroups (Array)
  9039.     NovInGroup              NovInGroup (Group) : Boolean
  9040.     NovLogin                NovLogin (Name,Password)
  9041.     NovLoginName            NovLoginName (Connection) : String
  9042.     NovLogout               NovLogout
  9043.     NovMapDrive             NovMapDrive (Drive,Directory)
  9044.     NovMyLoginName          NovMyLoginName : String
  9045.     NovMyPassword           NovMyPassword (Password) : Boolean
  9046.     NovOpenSemaphore        NovOpenSemaphore (Name,Value)
  9047.     NovPasswordExpDate      NovPasswordExpDate (UserName) : Date
  9048.     NovPreferredServer      NovPreferredServer : String
  9049.     NovPrimaryServer        NovPrimaryServer : String
  9050.     NovPrintQueues          NovPrintQueues (Array)
  9051.     NovReadGroups           NovReadGroups (Name,Array)
  9052.     NovReadSecurityEquals   NovReadSecurityEquals (Name,Array)
  9053.     NovResult               NovResult : Number
  9054.     NovSemaphoreTimeOut     NovSemaphoreTimeOut
  9055.     NovSemaphoreUsers       NovSemaphoreUsers (Name) : Number
  9056.     NovSemaphoreValue       NovSemaphoreValue (Name) : Number
  9057.     NovServers              NovServers (Array)
  9058.     NovScanProperties       NovScanProperties (Array, Object, ObjectType)
  9059.     NovSetPreferredServer   NovSetPreferredServer (Server)
  9060.     NovSetPrimaryServer     NovSetPrimaryServer (Server)
  9061.     NovSignalSemaphore      NovSignalSemaphore (Name)
  9062.     NovStationAddress       NovStationAddress (Connection) : String
  9063.     NovUserInGroup          NovUserInGroup (Name,Group) : Boolean
  9064.  
  9065.  
  9066.  
  9067.    Computer Tyme MarxMenu Users Manual                     Page 141
  9068.    _______________________________________________________________
  9069.  
  9070.  
  9071.     NovUsers                NovUsers (Array)
  9072.     NovUsersLoggedIn        NovUsersLoggedIn (Array)
  9073.     NovWaitOnSemaphore      NovWaitOnSemaphore (Name) : Boolean
  9074.     UseNovPassword          UseNovPassword : Boolean
  9075.  
  9076.    VARIABLE COMMANDS
  9077.    VARIABLE COMMANDS
  9078.    VARIABLE COMMANDS
  9079.  
  9080.     Qualifier               Qualifier
  9081.     Shared                  Shared
  9082.     Var                     Var
  9083.  
  9084.  
  9085.  
  9086.    Other Computer Tyme Software:
  9087.    ======================================================
  9088.  
  9089.    The Computer Tyme Dos ToolBox... Makes DOS easier for the novice,
  9090.    more powerful for the professional.
  9091.  
  9092.    DIRECTORY MASTER is a powerful hard disk managment utility. It
  9093.    brings up your hard disk files and allows you to mark selected
  9094.    files so you can copy them, delete them, or move them. It also
  9095.    allows you to rename files, change dates, and change attributes.
  9096.    You can also run programs or set up your function keys to run
  9097.    programs on selected files.
  9098.  
  9099.    DOLIST makes being at DOS easier. It gives you full line editing,
  9100.    like a word processor, for your commands. It also stores commands
  9101.    so that you can re-execute them. It remembers subdirectories and
  9102.    allows you to go back to them by pressing the TAB key. It offers
  9103.    programmable function keys, DOS extensions, multiple execution,
  9104.    and many more features you have got to have.
  9105.  
  9106.    PICK DIRECTORY allows you to move through the directory system by
  9107.    displaying a graphic tree and letting you use your arrow keys to
  9108.    move around. It also lets you create, delete, rename, and hide
  9109.    directories.
  9110.  
  9111.    TEDIT (from SemWare) is a powerful, easy to use full screen
  9112.    editor.
  9113.  
  9114.    MARXTSR is a set of memory and TSR management utilities that let
  9115.    you load and unload TSRs (Terminate and stay resident programs)
  9116.    from memory. Utilities to list menory allocation and turn TSR's
  9117.    on and off.
  9118.  
  9119.    And many more ... Also includes is D, a fancy directory listing
  9120.    program; WHEREIS, for finding stuff on you hard disk, SORT, MOVE,
  9121.    FIND, FREE, PIPEDIR, VERSION, and many more.
  9122.  
  9123.    The Dos Toolbox sells for $59.95.
  9124.  
  9125.    ======================================================
  9126.  
  9127.    We are also selling QEdit from Semware. QEdit is a professional
  9128.    editor from Semware. TEdit is a mini version of QEdit. If you
  9129.    like TEdit, You'll love QEdit.
  9130.  
  9131.    1-800-548-5353 Order Line
  9132.    1-417-866-1222 Voice Line
  9133.    1-417-866-1665 BBS Data line * 1200/2400 * 8N1 * ANSI or VT100
  9134.  
  9135.    MarxMenu comes with MarxEdit and MARXTSR manager and a few goodies out of
  9136.    the DOS ToolBox. The Network Survival Kit is a network version of almost
  9137.    every utility I've ever written. It's sold on a per fileserver basis.
  9138.  
  9139.                  _______
  9140.             ____|__     |               (tm)
  9141.          --|       |    |-------------------
  9142.            |   ____|__  |  Association of
  9143.            |  |       |_|  Shareware
  9144.            |__|   o   |    Professionals
  9145.          -----|   |   |---------------------
  9146.               |___|___|    APPROVED VENDOR
  9147.  
  9148.       ==========================================
  9149.  
  9150.  
  9151.  
  9152.  
  9153.  
  9154.  
  9155.  
  9156.         Make Check            Computer Tyme            Order Form 2.26
  9157.         Payable To:    411 North Sherman Suite 300
  9158.                           Springfield Mo. 65802
  9159.                      (417) 866-1222  (800) 548-5353
  9160.  
  9161.         Please send me Computer Tyme Software.
  9162.  
  9163.         =============================================================
  9164.  
  9165.         Name:        ________________________________________________
  9166.  
  9167.         Address:     ________________________________________________
  9168.  
  9169.         City/St/Zip: ________________________________________________
  9170.  
  9171.         Phone:       ________________________________________________
  9172.  
  9173.         Computer:    ________________________________________________
  9174.  
  9175.         Got From:    ________________________________________________
  9176.  
  9177.         Comments:    ________________________________________________
  9178.  
  9179.                      ________________________________________________
  9180.  
  9181.  
  9182.         Single User Version:
  9183.  
  9184.         ___ Enclosed is $59.95 for MarxMenu.
  9185.  
  9186.         ___ Enclosed is $59.95 for the DOS ToolBox.
  9187.  
  9188.         ___ Enclosed is $99.95 for MarxMenu, the Dos ToolBox and DM3.
  9189.  
  9190.  
  9191.         Network Version (1 per file server):
  9192.  
  9193.         ___ Enclosed is $495 for Network Survival Kit.
  9194.  
  9195.         ___ Add $3.00 for Shipping and Handling.
  9196.  
  9197.         ___ I need 3 1/2 Inch Media.
  9198.  
  9199.  
  9200.         Credit Card Number: _______________ Expiration Date: ________
  9201.  
  9202.         Signature: __________________________________________________
  9203.  
  9204.         Master Card __   Visa __   Discover __
  9205.  
  9206.                     * We do not take American Express *
  9207.  
  9208.         =============================================================
  9209.